ArcGis javascript api,需要更改图形层的Wkid
我正在使用arcgis javascript API 3.5,我的代码是ArcGis javascript api,需要更改图形层的Wkid,javascript,arcgis,arcgis-js-api,Javascript,Arcgis,Arcgis Js Api,我正在使用arcgis javascript API 3.5,我的代码是 function init() { map = new esri.Map("mapDiv", { basemap: "streets", center: [-112.07102547942392, 46.75909704205151], zoom: 12, slider: false
function init() {
map = new esri.Map("mapDiv", {
basemap: "streets",
center: [-112.07102547942392, 46.75909704205151],
zoom: 12,
slider: false
});
var featureLayer = new esri.layers.FeatureLayer("http://abc/arcgis/rest/services/MTARNG/MapServer/0", {
mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
outFields: ["*"]
});
对于这一层中的搜索,我使用findtask。代码在这里
findTask = new esri.tasks.FindTask("http://abc/arcgis/rest/services/MTARNG/MapServer");
findParams = new esri.tasks.FindParameters();
findParams.returnGeometry = true;
findParams.layerIds = [0];
findParams.searchFields = ["LOCATION", "PROJECT_PARCEL_NAME"];
findParams.searchText = "north portion";
findTask.execute(findParams, showResults);
function showResults(results) {
var markerSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 1), new dojo.Color([0, 255, 0, 0.25]));
map.graphics.clear();
dojo.forEach(results, function (result) {
var graphic = result.feature;
if (graphic.geometry != null) {
switch (graphic.geometry.type) {
case "point":
graphic.setSymbol(markerSymbol);
break;
}
}
map.graphics.add(graphic);
});
}
因此,它在地图中添加了特征,但在图像中的错误位置添加了特征
![在图像中,特征位于不同位置,图形位于不同位置][1]
对不起,我没有足够的声望点来发布图片?请检查我的照片我已将图像替换为我的照片
我分析后才知道wkid的结果是有责任的。
我查了wkid。我的图层具有wkid编号“26912”
graphicslayer的wkid号码是4326
所以我要做的是,我只是尝试更改wkid,但它不起作用。我正在以正确的方式工作,或者我必须做的任何事情
提前感谢。图形层从地图中获取其wkid,而地图(默认情况下)将其wkid设置为您加载的第一个光栅层(在您的情况下为基础地图)的wkid。正如您所看到的,这是4326,ESRI将其用于所有底图(我想)。无法更改地图的wkid,因为无法重新投影光栅图层(平铺图层) 解决此问题的一种方法是让FindTask以您想要的wkid返回其结果,例如4326。为此,请使用FindParameters的outSpatialReference:
findParams.outSpatialReference=新的esri.SpatialReference({wkid:4326})代码>
或者,直接从地图上看:
findParams.outSpatialReference=map.spatialReference代码>
在返回结果之前,服务器应将结果重新发送到4326,然后将结果添加到正确的系统中以添加到地图图形层。谢谢西蒙:)我成为你的粉丝。不用担心,如果答案有帮助,请单击向上投票,如果问题解决了,请单击勾选:)如果问题没有解决,请告诉我!对不起,西蒙,当我挣到钱的时候,我没有多少名声可以投票,而不是投票。