最近因为工作原因开始学习超图,对于从来没有接触过前端地图类编程的我,在导师指导下,我先学习 了百度地图,随后进行超图的学习,以下是学习过程中的部分感悟(主要以超图为主)。
超图坐标的获取
超图是没有像百度地图的坐标拾取系统,所以要获取到自己想要的地方坐标系需要自己使用超图文档里提供的api来获取。
1.获取像素坐标从而获取地图坐标
1)首先我们需要创建一个点击事件来获取到你点击目标的像素坐标
map.events.on({
"click":function(e){
console.log(e);
}
})
在控制台你可以找到你点击时的像素坐标
需要注意在这个过程中,如果你点击过程中对地图进行了扩大或者缩放,最终所获得的地图坐标都是不准确的,也就是说整个过程中不允许在网页地图上的扩放、缩放以及平移。
那么有人会问,我想要点击的目标点并不在屏幕范围内啊。这个时候我们可以调整Setcenter的zoom参数来控制缩放级别,当屏幕上出现你想要的坐标点时就可以进行操作了。
2)这时你成功获取到像素坐标。我们可以使用getLonLatFromPixel方法将像素坐标转化成超图的地图坐标。
var pixcel = new SuperMap.Pixel(xxx,xxx);//你获取到的像素坐标
var value = map.getLonLatFromPixel(pixcel);//转为超图坐标
console.log(value);//得到超图坐标
2.直接显示超图坐标
这个其实是我偶然查阅文档发现的。相比第一个更简单一些。
直接添加一个显示超图坐标系的控件
map.addControl(new SuperMap.Control.MousePosition());