mapkit中使用Google Geocoding API来进行搜索定位

mapkit 中有一个MKReverseGeocoder的类,你如果你知道某地的经纬度,你可以通过这个来获得地点的更多信息

,如:国家、城市和街道名等。这个类使用的是google map的服务。

有reverseGeocoding,google同时也提供了google geocoing api的服务,如果我们想通过地名查询来获取这个地方的

更多信息,可以使用这个api。

它可以返回很多种格式的信息,如:json,xml,kml,csv等。方便用户根据需要来使用。

使用格式如下:

http://maps.google.com/maps/api/geocode/json?address=taiguo&sensor=true

 

返回的json:

{ "results" : [ { "address_components" : [ { "long_name" : "泰国", "short_name" : "TH", "types" : [ "country", "political" ] } ], "formatted_address" : "泰国", "geometry" : { "bounds" : { "northeast" : { "lat" : 20.4651430, "lng" : 105.6368120 }, "southwest" : { "lat" : 5.6127870, "lng" : 97.3433960 } }, "location" : { "lat" : 15.8700320, "lng" : 100.9925410 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 21.28280940, "lng" : 109.1883420 }, "southwest" : { "lat" : 10.30798720, "lng" : 92.796740 } } }, "types" : [ "country", "political" ] } ], "status" : "OK" } 

 

通过这个接口,我们也可以用mapkit framework编写自己的地点查询程序。

 

cocoa中我没有发现解析json的工具,可能了解的不太深吧,到网上找到一个叫stig-json-framework的工具,

可以使用这个很方便的把json解析成一个NSDictionary。

 

下载好这个工具,在需要使用json的文件里引用相应的头文件(我的是引用了JSON.h的文件)

然后使用如下代码将json解析成NSDictionary:

NSURL * url = [NSURL URLWithString:@"http://maps.google.com/maps/api/geocode/json?address=gulou&sensor=true"]; NSString *jsonString = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSDictionary * jsonDic = [jsonString JSONValue]; 

 

这个获得的NSDictionary里有经纬度等各种信息,信息还是很全的,

接下来就可以根据需要编写程序代码了。

 

你可能感兴趣的:(json,api,Google,MapKit,Components,Types)