gpt4 book ai didi

iphone - 如何在 map 中单击按钮时添加用户设计的叠加层

转载 作者:行者123 更新时间:2023-11-29 13:46:09 25 4
gpt4 key购买 nike

我有兴趣在我的 GIS map 应用程序中添加一个选项,能够绘制多边形、圆形、多边形覆盖图,以便用户在其中搜索数据。问题是我已经阅读并测试了如何绘制覆盖,但它们始终是静态的。我希望它是动态的,用户在单击时设置动态中心和点(或半径)。对我来说是个谜。(我是 iPhone 编程的初学者,这是我的第一次应用程序。)而且我没有使用也不想使用 ArcGIS API for iPhone 之类的东西。我将不胜感激任何帮助。

最佳答案

要让用户在 map 上“绘制”任意多边形,一种方法是使用表示多边形角的可拖动注释。在每个注释上提供一个“添加角”按钮和某种删除角按钮。

请参阅我对 User creating a box on MKMapView 的回答了解更多详情。不过,在这个问题上,OP 实际上最终使用了评论中描述的另一种解决方案,如果多边形始终是矩形,这种解决方案会很好地工作。

要在注释 View 中实现按钮(如果你想在注释上使用“删除角”按钮),请参阅我对 How to get click event from a button added over MKAnnotationView 的回答。 .

一旦你在 map 上有了一个多边形或其他叠加层,通过直接触摸拖动它可能只能通过向 map 添加一个手势识别器(关闭它自己的滚动)并使用允许的自定义 MKOverlay 和 MKOverlayView坐标变化。将手势识别器直接添加到 MKOverlayView 似乎不起作用,并且内置覆盖类不允许更改坐标。

通过直接触摸移动的替代方法是在侧面放置一些控件(上/下/左/右/等按钮)以修改自定义叠加层。

Apple 示例应用 Breadcrumb给出了路径的自定义覆盖/ View 的示例。在 WWDC 2010 中,示例应用程序 LocationReminders 给出了一个可以移动和调整大小的圆的自定义覆盖/ View 示例。

最后,当您搜索商家时,您可以使用叠加层的 boundingMapRect(无论叠加层的形状如何,它始终是一个矩形)作为初始搜索的边界框,然后检查找到的每个商家的坐标是否为使用 How to determine if an annotation is inside of MKPolygonView (iOS) 的答案在叠加层的实际形状中.

关于iphone - 如何在 map 中单击按钮时添加用户设计的叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com