获取地图坐标主要分两种情况,静止时和鼠标移动时的坐标。静止时获取当前的中心位置,移动时显示当前坐标。获取坐标时主要用到MapView,无其他api引用,就简单叙述下:
- 添加小控件,设置样式,并将控件添加到视图:
var coordsWidget = document.createElement("div");
coordsWidget.id = "coordsWidget";
coordsWidget.className = "esri-widget esri-component";
coordsWidget.style.padding = "7px 15px 5px";
view.ui.add(coordsWidget, "bottom-right");
- 显示地图信息:(坐标,比例和缩放级别)
function showCoordinates(pt) {
var coords =
"Lat/Lon " +
pt.latitude.toFixed(3) +
" " +
pt.longitude.toFixed(3) +
" | Scale 1:" +
Math.round(view.scale * 1) / 1 +
" | Zoom " +
view.zoom;
coordsWidget.innerHTML = coords;
}
- 获取移动或静止时的位置信息
view.watch("stationary", function (isStationary) {
showCoordinates(view.center);
});
view.on("pointer-move", function (evt) {
showCoordinates(view.toMap({ x: evt.x, y: evt.y }));
});
- 效果图展示:
本片文章比较简单,但却十分重要,地图的操作,很多时候都需要坐标的支持
通过以上代码发现,小控件的添加是通过view.ui.add(coordsWidget, "bottom-right")
实现,我们可以通过该方法在视图上的各个位置添加控件,样式也可以自己实现,大家可以自行尝试一下。