首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择MKPolygon on tap

选择MKPolygon on tap
EN

Stack Overflow用户
提问于 2019-04-17 10:44:31
回答 1查看 171关注 0票数 1

我正在尝试允许用户使用xamarin forms iOS在地图上选择多边形,并对他们选择的多边形应用笔划。我不知道如何在c#中以这种方式创建点击手势。

我正在通过创建多边形

代码语言:javascript
复制
var blockOverlay = MKPolygon.FromCoordinates(coords);
 Constants.nativeMap.AddOverlay(blockOverlay);

理想情况下,我希望它看起来像我的Android Map

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 12:05:45

您可以将UITapGestureRecognizer添加到MKMapView中,并将捕获的点击坐标转换为地图点,然后测试它是否存在于任何覆盖中。

示例:

代码语言:javascript
复制
var uiTapGesture = new UITapGestureRecognizer(tappedGesture =>
{
    foreach (MKPolygon polygon in (tappedGesture.View as MKMapView).Overlays)
    {
        using (var render = new MKPolygonRenderer(polygon))
        {
            var coord2D = nativeMap.ConvertPoint(tappedGesture.LocationInView(nativeMap), nativeMap);
            var mapPoint = MKMapPoint.FromCoordinate(coord2D);
            var polyTouched = render.Path.ContainsPoint(render.PointForMapPoint(mapPoint), true);
            if (polyTouched)
                Console.WriteLine($"tapped: {polygon}");
        }
    }
});
nativeMap.AddGestureRecognizer(uiTapGesture);

注意:这是假设您使用MKPolygon覆盖,如果不是,相应地调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55719145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档