arcgis api for JavaScript如何获取自定义坐标系底图鼠标指针处的xy坐标?

我这里有一个地方坐标系的底图,已经通过ArcGIS Server发布了,能够正常访问。但是当我想获取鼠标指针xy坐标的时候,发现用webMercatorUtils.webMercatorToGeographic这个方法得到的xy坐标似乎有点不太对劲,跟我原来的底图差距有点大。想问一下大家,这个获取坐标工具对于坐标系是有使用限制的吗?下面传两张在arcmap中和在web中的坐标显示对比。 
详细的代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<title>Display a sh2000 tile-based map</title>

<link rel="stylesheet" href="https://js.arcgis.com/4.23/esr ... gt%3B
<script src="https://js.arcgis.com/4.23/%26 ... gt%3B

<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>

<script>
require([
"esri/config",
"esri/Map",
"esri/Basemap",
"esri/views/MapView",
"esri/layers/MapImageLayer",
"esri/layers/TileLayer",
"esri/layers/WMSLayer",
"esri/geometry/support/webMercatorUtils",

"esri/Graphic",
"esri/layers/GraphicsLayer",

"dojo/dom",
"dojo/domReady!"
],
function(
esriConfig, Map,Basemap, MapView,
MapImageLayer,TileLayer,WMSLayer,webMercatorUtils,Graphic, GraphicsLayer,dom
) {

esriConfig.apiKey = "AAPKc97ab2ab5b7a4e52b43593bd9195aa432-0F2ZuCm_5wCfKiXTDYxK9cGj-bFAWxmHJvFsw2xkPwFe9ixBXg3AE5C-GoHVdr";
let imgLayer = new TileLayer({
url:"https://localhost:6443/arcgis/ ... ot%3B
})

let point_layer = new MapImageLayer({
url:"https://localhost:6443/arcgis/ ... ot%3B
})

let rect_layer = new MapImageLayer({
url:"https://localhost:6443/arcgis/ ... ot%3B
})

let baseMap = new Basemap({
baseLayers: [
imgLayer
]
});

let map = new Map({
basemap: baseMap
});

let view = new MapView({
container: "viewDiv",
// zoom:17,
map: map,
});

map.add(point_layer);
map.add(rect_layer);
// map.add(imgLayer);
// console.log(map);
// console.log(imgLayer);
// console.info(map.basemap.baseLayers.getItemAt(0).spatialReference.wkid);
// let graphicsLayer = new GraphicsLayer();
// map.add(graphicsLayer);
// let point = {
// type: "point",
// x: -0.026,
// y:-0.0090,
// };

// let simpleMarkerSymbol = {
// type: "simple-marker",
// color: [226, 119, 40], // Orange
// outline: {
// color: [255, 255, 255], // White
// width: 1
// }
// }

// let pointGraphic = new Graphic({
// geometry: point,
// symbol: simpleMarkerSymbol
// });

// graphicsLayer.add(pointGraphic);
console.log(map);
console.log(view);
console.log(imgLayer);
// console.log(point);
function showCoordinates(evt) {
var point = view.toMap({x: evt.x, y: evt.y});
//the map is in web mercator but display coordinates in geographic (lat, long)
var mp = webMercatorUtils.webMercatorToGeographic(point);
//display mouse coordinates
dom.byId("info").innerHTML = mp.x.toFixed(3) + ", " + mp.y.toFixed(3);
}

view.when(function(){
//after map loads, connect to listen to mouse move & drag events
view.on("pointer-move", showCoordinates);
});
});
</script>
</head>

<body>
<div id="viewDiv"></div>
<span id="info" style="position:absolute; left:100px; bottom: 100px; color:#0079c1; z-index:50;"></span>
</body>

</html>
原图.png web端展示.png
已邀请:

许丹石

赞同来自:

你所谓的xy坐标是不是想要表达的是经纬度?

要回复问题请先登录注册