传单地理搜索:return lat/lng 来自地址发现事件

Leaflet geosearch: return lat/lng from address found event

我使用很棒的 Leaflet 插件进行地理编码,例如 https://github.com/smeijer/L.GeoSearch

虽然这些非常适合在找到时在地图上显示地址位置,但我还希望能够将结果中的坐标用于我包含在我的地图中的其他函数(例如,我写了一个它根据从 Leaflet 的内置 locate 函数触发的 locationfound 事件从数据层中找到附近的点。

我知道答案(可能)在于从地理搜索插件访问事件,但这有点超出我目前的技能范围。非常欢迎任何帮助。

L.GeoSearch 插件在您的地图实例上触发它的事件。您需要监听 geosearch_foundlocations 事件。触发事件时返回的对象包含一个 Locations 属性,其中包含一个包含 L.GeoSearch.Result 个对象的数组。每个对象都有四个属性; LabelXYbounds

代码示例:

map.on('geosearch/showlocation', function (e) {
    e.Locations.forEach(function (Location) {
        // Location.Label = full address
        // Location.X = longitude
        // Location.Y = latitude
        // Location.bounds = boundaries
    });
});