Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ArcGis javascript api,需要更改图形层的Wkid_Javascript_Arcgis_Arcgis Js Api - Fatal编程技术网

ArcGis javascript api,需要更改图形层的Wkid

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

我正在使用arcgis javascript API 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);
        });         
    }
因此,它在地图中添加了特征,但在图像中的错误位置添加了特征 ![在图像中,特征位于不同位置,图形位于不同位置][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,然后将结果添加到正确的系统中以添加到地图图形层。

谢谢西蒙:)我成为你的粉丝。不用担心,如果答案有帮助,请单击向上投票,如果问题解决了,请单击勾选:)如果问题没有解决,请告诉我!对不起,西蒙,当我挣到钱的时候,我没有多少名声可以投票,而不是投票。