【问题标题】:Search and display business locations on MKMapView在 MKMapView 上搜索和显示营业地点
【发布时间】:2010-12-11 02:06:01
【问题描述】:

我正在尝试寻找一种方法来搜索业务,例如“杂货店”并将其显示在用户当前位置周围的谷歌地图上。这对于启动苹果地图位置的旧 URL 样式过去非常简单,但我不知道如何使用 MKMapView 来完成。我知道我需要使用 MKAnnotations 类,但我的问题是查找数据。我尝试插入下面的 URL 以从 google 获取信息,但数据的大小似乎太大了。

http://maps.google.com/maps?q=grocery&mrt=yp&sll=37.769561,-122.412844&z=14&output=kml

有没有一种简单的方法来设置一个属性,告诉 MKMapView 搜索关键字并显示我当前位置周围的所有匹配业务?或者有人知道如何从谷歌获取这些信息吗?

【问题讨论】:

    标签: iphone iphone-sdk-3.0 mkmapview


    【解决方案1】:

    该搜索返回的 KML 文件中包含大量信息。 MKMapView 没有办法查询谷歌,所以你有几个选择:

    1. 将您从该查询中获得的数据与NSXMLParser 结合使用,并仅提取您感兴趣的内容(可能是标题、纬度、经度)。 KML 只是 XML 的一个版本。

    2. 浏览 Google 文档以找到提供更轻量级数据格式的调用。你可以把你url中的格式改成json,但是里面的信息是一样的。

    该文件只有大约 50KB。根据我的经验,在 3G 上下载和解析 50KB 的 XML 文件大约需要 5 秒。

    编辑:刚刚找到这个,想你可能会感兴趣:

    许多人通过 JSON 将数据传入和传出 Web 服务到 iPhone。这是比使用 XML 更好的方法。在 iPhone 上解析 XML 简直糟透了。它过于复杂和超级混乱。目前 YouVersion 应用程序 Bible 使用 JSON 从服务器来回传输所有内容,并且一切正常。

    如果你真的别无选择,至少使用 JSON。这是我目前使用的一个很棒的 JSON 库 http://code.google.com/p/json-framework/

    从这里:http://samsoff.es/post/iphone-plist-tutorial/

    您可以通过将请求字符串更改为以下内容来获取 JSON:

    http://maps.google.com/maps?q=grocery&mrt=yp&sll=37.769561,-122.412844&z=14&output=json

    另一个编辑

    这是另一个名为 Touch JSON 的 JSON 库。这个我用过,很容易实现。

    https://github.com/acf/TouchJSON

    【讨论】:

      【解决方案2】:

      与其使用maps?q=字符串,不如使用这里的官方API: http://code.google.com/apis/maps/documentation/geocoding/

      API 的 JSON 回复与 JSON Parser http://code.google.com/p/json-framework/ 更好地配合使用(其他 URL 不返回符合标准的 JSON,并且不是标准 API,因此可能更容易更改)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 2011-12-23
        • 2019-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多