我正试图找到一种搜索商家的方法,例如“杂货店”等。并在围绕用户当前位置的Google地图上显示它们。这曾经非常简单,使用旧的URL样式启动苹果地图位置,但我无法找到如何使用MKMapView。我知道我需要使用MKAnnotations类,但我的问题是找到数据。我已经尝试插入以下网址以获取谷歌的信息,但数据的大小似乎太大了。

http://maps.google的.com /映射q =杂货&安培; MRT = YP&安培; SLL = 37.769561,-122.412844&安培; Z = 14&安培;输出= KML

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

有帮助吗?

解决方案

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

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

  2. 通过Google文档查找可提供更轻量级数据格式的调用。您可以将网址中的格式更改为json,但其中的信息是相同的。

  3. 该文件仅约50KB。根据我的经验,下载和解析50KB的XML文件需要大约5秒钟的时间。

    修改:刚发现这个,您可能会对此感兴趣:

      

    许多人通过JSON将数据传输到Web服务或从Web服务传输到iPhone。这是一种比使用XML更好的方法。在iPhone上解析XML简直太糟糕了。它过于复杂,令人困惑。目前,YouVersion应用程序圣经使用JSON从服务器来回传输所有内容,这一切都很有效。

         

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

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

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

    http://maps.google的.com /映射q =杂货&安培; MRT = YP&安培; SLL = 37.769561,-122.412844&安培; Z = 14&安培;输出= JSON

    另一个编辑

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

    https://github.com/acf/TouchJSON

其他提示

不是使用 maps?q = 字符串,最好在这里使用官方API: http://code.google.com/apis/maps/documentation/geocoding/

JSON对JSON解析器的JSON回复 http://code.google .com / p / json-framework / 更好(其他URL不返回兼容的JSON,并且不是标准API,因此可能更容易更改)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top