您好!可以使用数据服务做查询,通过map的点击事件获得鼠标点击位置的坐标,然后做空间查询,得到选中的乡镇面与乡镇面的属性信息,再根据这个属性信息中某个唯一标识其村和社区的字段对村和社区图层做SQL查询。
空间查询代码可以参考:
map.on('click', evt => {
let x = evt.latlng.lng
let y = evt.latlng.lat
if (x < -180.0 || x > 180.0 || y < -90 || y > 90) {
return
}
point = new L.circleMarker([y, x])
let geometryParam = new L.supermap.GetFeaturesByGeometryParameters({
datasetNames: ['World:Countries'],
geometry: point,
spatialQueryMode: 'INTERSECT'
})
new L.supermap.FeatureService(url).getFeaturesByGeometry(geometryParam, serviceResult => {
if (resultLayer != undefined) {
resultLayer.remove()
}
resultLayer = L.geoJSON(serviceResult.result.features).addTo(map)
resultLayer.bindPopup('国家:' + serviceResult.result.features.features[0].properties.COUNTRY).openPopup(point.getLatLng())
})
})
SQL查询可以参考示例 SQL 查询 (supermap.io)
希望可以帮助到您!