Rah*_*pta 3 javascript arcgis arcgis-js-api
我正在使用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: ["*"]
});
Run Code Online (Sandbox Code Playgroud)
而在这一层搜索我正在使用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);
});
}
Run Code Online (Sandbox Code Playgroud)
所以它是在地图中添加功能,但在图像中的错误位置![在图像功能在不同的地方,图形在不同的地方] [1]
sory我没有足够的声望点发布图片?请检查我的照片我已用我的照片替换图像
我分析然后我才知道wkid的结果是负责任的.我检查了wkid.我的图层有wkid编号"26912",图形层有wkid编号4326.
所以我会做什么,我只是尝试改变wkid但它不起作用.我正在以正确的方式或我必须做的任何事情工作.
提前致谢.
图形层从地图中获取它的wkid,并且地图(默认情况下)将它的wkid设置为您加载的第一个栅格图层(在您的情况下为基本地图).正如你所看到的那样,这是4326,它被ESRI用于它的所有基础地图(我认为).您无法更改地图的wkid,因为无法重新投影栅格图层(平铺图层).
解决这个问题的一种方法是让FindTask在你想要的wkid中返回它的结果,例如4326.为此,使用FindParameters的outSpatialReference:
findParams.outSpatialReference = new esri.SpatialReference({wkid:4326});;
或者,从地图上直接拿出来:
findParams.outSpatialReference = map.spatialReference;
然后,结果应该在返回之前由服务器重新投影到4326,因此要在正确的系统中添加到地图图形层.
| 归档时间: |
|
| 查看次数: |
2354 次 |
| 最近记录: |