贴个群号
WebGIS学习交流群461555818,欢迎大家。
点击事件获取经纬度
const self = this
testLayer.on('click', function(e){
if(self.map.hasLayer(testLayer)){
self.getClickFeatrue(e.latlng,"你的图层名,一般是rest/maps后面的","你的服务地址")
}
})
获取要素信息
/**
* @desc 超图wms服务,获取点击要素信息
* @param {object} latlng 鼠标点经纬度
* @param {String} name - 图层名称
* @param {String} serverUrl - 超图服务地址
* @returns 返回数据 geoJson 格式结果数据
*/
async getClickFeatrue(latlng,name,serverUrl){
const _this = this
var polygon = L.polygon([[latlng.lat-0.0001, latlng.lng-0.0001], [latlng.lat-0.0001, latlng.lng+0.0001], [latlng.lat+0.0001, latlng.lng+0.0001], [latlng.lat+0.0001, latlng.lng-0.0001]], {color: 'red'});
//服务端数据坐标系为 3857,因此将查询数据转为与服务端对应坐标系:
var geometry = L.supermap.Util.transform(polygon, L.CRS.EPSG4326, L.CRS.EPSG4326);
var param = await new L.supermap.QueryByGeometryParameters({
queryParams: {name: name},//zlc
geometry: geometry
});
new L.supermap
.QueryService(serverUrl)
.queryByGeometry(param,async function (serviceResult) {
if(serviceResult.result){
//leaflet 绘制数据默认为 4326,服务器返回数据为 3857,因此在加载到地图前,先进行坐标系转换:
var result =await L.supermap.Util.transform(serviceResult.result.recordsets[0].features, L.CRS.EPSG4326, L.CRS.EPSG4326);
if(result.features.length>0){
return result
}
}
});
},