2

我有一个带有多个多边形的图层,其中该图层被标记为不是信息层

myLayer = new Layer() { IsMapInfoLayer = false...

我还有一个事件处理程序,用于单击 xaml 中定义的地图

MapClicked="myClickHandler"

此单击在空白区域上效果很好,但如果我单击多边形,则地图单击会被阻止。以前我通过响应多边形的信息事件处理程序并将其路由到处理地图点击的相同代码来解决这个问题,但现在这还不够,因为我需要点击位置的纬度,经度。

如何使多边形不拦截我的点击?

4

1 回答 1

0

如果单击某个要素,则会调用 MapInfo 事件。如果不是,则调用 MapClicked 事件。这是设计使然。您提到 IsMapInfoLayer 设置为 false。在这种情况下,不应触发任何 MapInfo 事件,并且您应该获得 MapClicked 事件。请注意,MapInfo 事件也可以从另一个图层触发。

解决您的问题的方法: MapInfo 事件还包含 WorldPosition,但它位于 SphericalMercator 坐标上。您可以使用以下方式进行翻译:

var latLon = Projection.SphericalMercator.ToLonLat(point.X, point.Y);

于 2021-10-27T11:53:39.410 回答