4

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

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

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

4

2 回答 2

6

该搜索返回的 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

于 2009-10-29T02:53:40.347 回答
1

与其使用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,因此可能更多可调整的)。

于 2010-03-12T12:32:57.473 回答