使用BlazorGoogleMaps组件拖动地图后无法获取中心LatLng
在BlazorGoogleMaps中获取地图拖动后的中心坐标
你可以通过调用Google Maps原生API的getCenter()方法来获取地图拖动后的中心坐标,具体实现如下:
- 确保组件中已正确引用地图实例:
<Map @ref="map1" Options="@mapOptions" ...></Map>
- 保留你已实现的
OnAfterInitAsync方法绑定dragend事件:
private async Task OnAfterInitAsync() { await map1.InteropObject.AddListener("dragend", OnDragEnd); }
- 实现
OnDragEnd方法,通过InteropObject调用原生getCenter方法获取坐标:
private async Task OnDragEnd() { // 调用Google Maps原生方法获取当前地图中心 var centerLatLng = await map1.InteropObject.InvokeAsync<LatLng>("getCenter"); // 使用获取到的坐标 var latitude = centerLatLng.Lat; var longitude = centerLatLng.Lng; // 这里可以添加你的业务逻辑,比如更新显示、发送请求等 }
说明
InteropObject是组件对Google Maps原生Map对象的封装,允许你直接调用Google Maps JavaScript API中的方法。getCenter()是Google Maps Map对象的原生方法,会返回当前地图的中心坐标,通过InvokeAsync<LatLng>可以将JS端的坐标对象映射为组件提供的LatLng类型。- 确保代码中已引入命名空间:
using BlazorGoogleMaps;
内容的提问来源于stack exchange,提问作者dnky
相关产品推荐
相关产品推荐

