I was having some problem when trying to set the map to zoom to certain point. Here is how I set up my map using Esri base map with a OneMap map overlay on top of it:
function setMap() {
function init() {
require(
[
"esri/map",
"dojo/dom-construct",
"esri/geometry/Point",
"esri/symbols/SimpleMarkerSymbol", "esri/symbols/SimpleLineSymbol",
"esri/graphic", "esri/Color","esri/tasks/ProjectParameters",
"dojo/domReady!"
],
function
(
Map, domConstruct, Point,
SimpleMarkerSymbol, SimpleLineSymbol,
Graphic, Color,ProjectParameters
) {
map = Map("map-canvas",
{
});
map.setZoom(0);
coreFunctions();
});
// Get current location
map.on("load", getCurrentLoc);
}
dojo.ready(init);
gsvc = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
}
And I added an overlay:
function addLayersToData() {
var layer = new esri.layers.ArcGISTiledMapServiceLayer("https://www.onemap.sg/ArcGIS/rest/services/BASEMAP/MapServer");
mapLayers.push(layer);
}
And my method to set the map to zoom to certain point:
function zoomPostal(postalCode) {
$.getJSON("http://www.onemap.sg/API/services.svc/basicSearch?token=qo/s2TnSUmfLz+32CvLC4RMVkzEFYjxqyti1KhByvEacEdMWBpCuSSQ+IFRT84QjGPBCuz/cBom8PfSm3GjEsGc8PkdEEOEr&searchVal="
+ postalCode
+ "&otptFlds=SEARCHVAL,CATEGORY&returnGeom=0&rset=1", function (data) {
esriConfig.defaults.geometryService = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
var loc = new esri.geometry.Point({ "x": data.SearchResults[1].X, "y": data.SearchResults[1].Y, "spatialReference": { "wkid": 3414 } });
var params = new esri.tasks.ProjectParameters();
params.geometries = [loc.geometry];
params.outSR = map.spatialReference;
esri.config.defaults.geometryService.project(params, function (loc) {
map.centerAndZoom(loc[0],12);
});
});
}
So far I know to zoom the map to certain level using setZoom but I have no idea how to zoom it to certain point. Any ideas?
Thanks in advance.