我正在编码一个地图应用程序,该应用程序使用带有Nominatim地理编码器的Leaflet.Control.Search。
我的目标是提供一个功能,该功能将在找到位置后触发,该位置显示一个弹出窗口,允许用户生成报告。
这是我的map-canvas.component.ts:
ngOnInit() {
this.map = L.map('lmap').setView([51.91, 19.14], 7);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(this.map);
this.map.addControl(new L.Control.Search({
url: 'https://nominatim.openstreetmap.org/search?format=json&q={s}',
jsonpParam: 'json_callback',
propertyName: 'display_name',
propertyLoc: ['lat', 'lon'],
marker: L.circleMarker([0, 0], { radius: 30 }),
autoCollapse: true,
autoType: false,
minLength: 2
}));
this.mapLoaded.emit({ map: this.map, L: L });
}
编辑:
将我的问题更改为与标题更匹配。
答案 0 :(得分:0)
为此,可以利用s earch:locationfound
事件
移动后触发并显示markerLocation
并以如下方式实例化弹出窗口:
controlSearch.on("search:locationfound", function(e) {
const popup = L.popup({})
.setLatLng(e.latlng)
.setContent("Some content goes here...")
.openOn(map);
});