Ios 如何实现Realtor iPad应用程序中使用的自定义绘图搜索工具?

Ios 如何实现Realtor iPad应用程序中使用的自定义绘图搜索工具?,ios,iphone,ipad,mkmapview,mapkit,Ios,Iphone,Ipad,Mkmapview,Mapkit,Realtor iPad应用程序在mapkit上实现了一个自定义绘图工具,这是一个非常好的工作,他们使用mapkit来查询某个区域的房屋。我熟悉mapkit及其相关类,但不知道如何用手指绘制自定义图形并将其转换为地理空间查询。如何做到这一点?我不确定您在这方面做了多远,但您的基本算法应该如下所示: 在地图上方绘制一个多边形,然后将该多边形的坐标转换为“地图”坐标。为了做到这一点,您可能需要在MKMapKit实例以外的视图上监听手势。由于我对MapKit的触摸事件处理的了解有限,当您想要绘制时,

Realtor iPad应用程序在mapkit上实现了一个自定义绘图工具,这是一个非常好的工作,他们使用mapkit来查询某个区域的房屋。我熟悉mapkit及其相关类,但不知道如何用手指绘制自定义图形并将其转换为地理空间查询。如何做到这一点?

我不确定您在这方面做了多远,但您的基本算法应该如下所示:

  • 在地图上方绘制一个多边形,然后将该多边形的坐标转换为“地图”坐标。为了做到这一点,您可能需要在MKMapKit实例以外的视图上监听手势。由于我对MapKit的触摸事件处理的了解有限,当您想要绘制时,可能必须在地图上覆盖不同的透明视图,因此触摸事件不会进入MapKit(如果这有意义的话)。你用手指来捏、缩放、平移,如果你想画画,你就不需要这些功能了。在该视图中,您将绘制跟踪用户手指的形状,然后将绘制的点转换为地图点

    文档表明,您可以使用MKMapView上的
    convertPoint:toCoordinateFromView:
    方法将屏幕点转换为地图点

    有关以下信息,请查看此链接:

    这篇文章提供了一个链接,可以帮助您绘制多边形:

  • 绘制多边形后,您将需要“空间”查询数据。你可以用几种方法来做到这一点。在设备上本地或通过web服务有两种选择。如果您的数据是设备的本地数据,则必须在设备上进行地图计算。您还需要确保点数据(X、Y)与多边形信息位于相同的投影和坐标空间中。当投影和坐标系对齐时,多边形交点的数学处理相对简单

    这里有一个链接可以帮助你学习数学

    或者,您可以设置一些web服务,获取多边形数据,在服务器上执行相同的制图数学,并将结果返回给设备。无论哪种方式,都需要执行相同的数学运算。您将获取该多边形数据,并确定数据中哪些记录与该多边形相交

我知道这是相当高的水平,但这应该是你需要做的全部

另一个需要考虑的问题是,如果您的数据是通过设备上为SQLite编译的spatialite或服务器上的SQL Server Spatial在空间上启用的。您应该能够使用该多边形数据查询数据。不过,您必须正确设置查询的格式

最后,我鼓励您研究用于iOS的ESRI SDK。ESRI提供了现成的绘图和草图工具。使用它并不太困难,但有一个缺点是您必须学习一种新的API:


在我面临同样的挑战时,你有没有想过如何做到这一点?我从来没有想过——但愿我能做到。