【发布时间】:2015-03-09 09:46:46
【问题描述】:
我在尝试将地图设置为缩放到某个点时遇到了一些问题。以下是我使用 Esri 基本地图和 OneMap 地图叠加层设置地图的方法:
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");
}
我添加了一个叠加层:
function addLayersToData() {
var layer = new esri.layers.ArcGISTiledMapServiceLayer("https://www.onemap.sg/ArcGIS/rest/services/BASEMAP/MapServer");
mapLayers.push(layer);
}
以及我将地图设置为缩放到某个点的方法:
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);
});
});
}
到目前为止,我知道使用 setZoom 将地图缩放到某个级别,但我不知道如何将其缩放到某个点。有任何想法吗?
提前致谢。
【问题讨论】:
-
@KonradKrakowiak 有什么想法吗?
-
对不起,没有。我是安卓开发者。我刚刚读了你的问题。但是我把你的问题分享给我的朋友,也许他会给你一些帮助。
-
@KonradKrakowiak 好的,你的朋友知道怎么做吗?
-
他在下面回答了你。 Sebastian Mękal 是我的朋友。
-
@KonradKrakowiak 您好,但是您朋友的回答导致了一些错误消息。你能帮我让他解释一下他提供的答案吗?
标签: javascript maps arcgis esri arcgis-js-api