gpt4 book ai didi

javascript - ArcGis javascript api,需要修改Graphics层的Wkid

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:51 24 4
gpt4 key购买 nike

我正在使用 arcgis javascript apis 3.5,我的代码是

 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);
});
}

所以它在 map 中添加了特征,但是在错误的地方,就像在图像中一样![图中特征位置不同,图形位置不同][1]

对不起,我没有足够的声望点来发布图片?请检查我的照片我已经用我的照片替换了图片

我分析然后我开始知道 wkid 的结果是负责任的。我检查了wkid。我的图层有 wkid 编号“26912”图形层的 wkid 号为 4326。

所以我会做什么,我只是尝试更改 wkid,但它不起作用。我正在以正确的方式工作或我必须做的任何其他事情。

提前致谢。

最佳答案

图形层从 map 获取它的 wkid 并且 map (默认情况下)将它的 wkid 设置为您加载的第一个栅格层的 wkid,在您的情况下为 basemap 。如您所见,这是 4326,ESRI 将其用于所有 basemap (我认为)。您无法更改 map 的 wkid,因为无法重新投影栅格图层(平铺图层)。

解决这个问题的一种方法是让 FindTask 在您想要的 wkid 中返回它的结果,例如4326. 为此,请使用 FindParameters 的 outSpatialReference:

findParams.outSpatialReference = new esri.SpatialReference({wkid:4326});;

或者,直接从 map 上获取:

findParams.outSpatialReference = map.spatialReference;

结果应该在返回之前由服务器重新投影到 4326,因此在正确的系统中添加到 map 图形层。

关于javascript - ArcGis javascript api,需要修改Graphics层的Wkid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com