贴个群号
WebGIS学习交流群461555818,欢迎大家。
源码
首先要知道的是我们给每一个图层添加到地图上面的时候,都会有一个专属的ID,例如下图中的
ID都是专属的,然后我们就可以为地图添加事件了,有的可能是click,有的可能要移入鼠标就要展示,展示的情况可以是popup,也可以是点击出来在别的地方显示什么信息,这里主要的是我们如何才能获取地图信息。
我们首先需要在每一个地图服务添加到地图上面的时候,给他一个方法,下面按照点击展示popup来举例说明。
这里面的click是点击事件,id是你上面添加图层的时候的专属唯一ID,后面的就是你鼠标点击的那个点,queryRenderedFeatures函数的介绍在下面,这个函数通过鼠标的那个经纬度(e.point就是经纬度,可以自己打印e来看一下),和图层ID,就可以获取到你的要素信息了。然后怎么组织features用来展示就看大家各自手段了。
this.map.on('click', id, function (e) {
const features = self.map.queryRenderedFeatures(e.point, {
layers: [id]
})
}
需要注意的是可能有很多个地图要素比如点数据,堆到一起了,鼠标点了一下,他获取到很多数据,features里面的数据都是按照点击到的图层顺序来摆放的,我们只需要使用features[0]的数据就可以了。