【高德API】如何利用MapKit开发全英文检索的iOS地图
2015-08-13 17:50
781 查看
制作全英文地图的展示并不困难,但是要制作全英文的数据检索列表,全英文的信息窗口,你就没办法了吧。告诉你,我有妙招!使用iOS自带的MapKit来展示全球英文底图,结合上高德API的中英文检索功能,就能打造POI数据最丰富,英文展示全方位的纯英文地图啦!看看截图,是不是浑然天成?
-------------------------------------------------------------------------------------------------------------------------------
下面开始详解纯英文地图的步骤啦,助力程序员与国际APPs接轨!
第一步:申请Key
先申请高德的KEY:http://lbs.amap.com/console/key/
1、填写应用名称
2、绑定服务选择IOS平台
3、输入bundle id:将Xcode切换到General标签,即可查看Bundle Identifier
4、点击获取KEY
在高德官网有地图配置的详细说明,这里我就不多说了。查看:http://lbs.amap.com/api/ios-sdk/guide/mapview/
2、在弹出来的搜索框里搜索Mapkit。
3、选择iOS 8.0-->MapKit.framework,最后点击add即可。
高德的坐标系是国内标准坐标(GCJ-02,又称火星坐标),国际上一般是采用GPS坐标(WGS-84),所以大多数国际应用在中国使用时,需要进行坐标转换。
好在苹果的MapKit用的是高德的地图,showUserLocation= YES,坐标已经是GCJ-02的啦,可以直接使用~
(PS:不建议使用CLLocationManager定位管理类,它返回的坐标是GPS坐标,必须进行坐标转换,很麻烦。)
2、申请定位权限
申请方法:在 info.plist中追加NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription字段。
其中:
NSLocationWhenInUseUsageDescription表示应用在前台的时候可以搜到更新的位置信息。
NSLocationAlwaysUsageDescription表示应用在前台和后台(suspend或terminated)都可以获取到更新的位置数据。
[align=left]这步非常重要喔!必须要设置成英文,才能巧妙地让POI搜索、逆地理编码和地理编码、输入提示等,都变成纯英文喔。[/align]
这里还有全部源码下载:https://github.com/autonaviapi/HelloAmapForEnglish
大家快动手试试吧~~ 真的是一秒钟国际范儿的赶脚~ 再看一遍截图~
-------------------------------------------------------------------------------------------------------------------------------
关于为什么要选择高德API:
1、苹果MapKit本来就是调用的高德地图,看右下角版权信息,是不是有个灰色的高德地图logo,所以不存在坐标转换的问题,嗯,浑然天成;
2、高德推出了全球定位,全英文地图,全英文检索(全国仅此一家!)等潮流产品,各种非常适合“国际范儿”这个命题。
-------------------------------------------------------------------------------------------------------------------------------
原文链接:/article/4782524.html
-------------------------------------------------------------------------------------------------------------------------------
下面开始详解纯英文地图的步骤啦,助力程序员与国际APPs接轨!
第一步:申请Key
先申请高德的KEY:http://lbs.amap.com/console/key/
1、填写应用名称
2、绑定服务选择IOS平台
3、输入bundle id:将Xcode切换到General标签,即可查看Bundle Identifier
4、点击获取KEY
第二步、新建地图工程
在xCode里,新建一个 Single View Application工程,并且进行配置。在高德官网有地图配置的详细说明,这里我就不多说了。查看:http://lbs.amap.com/api/ios-sdk/guide/mapview/
第三步、添加MKMapView
1、在xCode里选择Build Phases标签,点开Link Binary With Libraries,再点加号。2、在弹出来的搜索框里搜索Mapkit。
3、选择iOS 8.0-->MapKit.framework,最后点击add即可。
第四步、初始化Mapview
1、设置定位模式高德的坐标系是国内标准坐标(GCJ-02,又称火星坐标),国际上一般是采用GPS坐标(WGS-84),所以大多数国际应用在中国使用时,需要进行坐标转换。
好在苹果的MapKit用的是高德的地图,showUserLocation= YES,坐标已经是GCJ-02的啦,可以直接使用~
(PS:不建议使用CLLocationManager定位管理类,它返回的坐标是GPS坐标,必须进行坐标转换,很麻烦。)
2、申请定位权限
申请方法:在 info.plist中追加NSLocationWhenInUseUsageDescription或NSLocationAlwaysUsageDescription字段。
其中:
NSLocationWhenInUseUsageDescription表示应用在前台的时候可以搜到更新的位置信息。
NSLocationAlwaysUsageDescription表示应用在前台和后台(suspend或terminated)都可以获取到更新的位置数据。
//申请定位权限 - (void) initLocation { if(nil == _locationManager) { _locationManager = [[CLLocationManager alloc] init]; } if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [_locationManager requestAlwaysAuthorization]; } } //初始化MapView - (void) initMapView{ //构造MKMapView _mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 21, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))]; _mapView.delegate = self; _mapView.showsUserLocation = YES;//显示定位图标 [_mapView setUserTrackingMode:MKUserTrackingModeFollow];//设置定位模式 //将mapview添加到Subview中 [self.view addSubview:_mapView]; }
第五步、初始化AMapSearchAPI
[align=left]构造AMapSearchAPI对象,设置搜索结果语言为英文AMapSearchLanguage_en。[/align][align=left]这步非常重要喔!必须要设置成英文,才能巧妙地让POI搜索、逆地理编码和地理编码、输入提示等,都变成纯英文喔。[/align]
//初始化AMapSearchAPI - (void)initSearch { //构造AMapSearchAPI _search = [[AMapSearchAPI alloc] initWithSearchKey:APIKey Delegate:self]; _search.language = AMapSearchLanguage_en;//设置语言 }
第六步、写个搜索demo来看看
以一个普通的POI检索为例,当检索英文关键词时,出来纯英文的搜素建议;搜索结果也用英文来展示。/* POI 搜索. */ - (void)searchPOIWithKey:(NSString *)key adcode:(NSString *)adcode { if (key.length == 0) { return; } //构造POI搜索对象AMapPlaceSearchRequest AMapPlaceSearchRequest *place = [[AMapPlaceSearchRequest alloc] init]; //设置关键字 place.keywords = key; place.requireExtension = YES;//设置成YES,返回信息详细,较费流量 if (adcode.length > 0) { place.city = @[adcode]; } //发起查询 [_search AMapPlaceSearch:place]; } //回调中显示结果 - (void)onPlaceSearchDone:(AMapPlaceSearchRequest *)request response:(AMapPlaceSearchResponse *)respons { if (respons.pois.count == 0) { return; } NSMutableArray *poiAnnotations = [NSMutableArray arrayWithCapacity:respons.pois.count]; [respons.pois enumerateObjectsUsingBlock:^(AMapPOI *obj, NSUInteger idx, BOOL *stop) { [poiAnnotations addObject:[[POIAnnotation alloc] initWithPOI:obj]]; }]; /* 将结果以annotation的形式加载到地图上. */ [_mapView addAnnotations:poiAnnotations]; /* 如果只有一个结果,设置其为中心点. */ if (poiAnnotations.count == 1) { _mapView.centerCoordinate = [poiAnnotations[0] coordinate]; } /* 如果有多个结果, 设置地图使所有的annotation都可见. */ else { [_mapView showAnnotations:poiAnnotations animated:NO]; } }
这里还有全部源码下载:https://github.com/autonaviapi/HelloAmapForEnglish
大家快动手试试吧~~ 真的是一秒钟国际范儿的赶脚~ 再看一遍截图~
-------------------------------------------------------------------------------------------------------------------------------
关于为什么要选择高德API:
1、苹果MapKit本来就是调用的高德地图,看右下角版权信息,是不是有个灰色的高德地图logo,所以不存在坐标转换的问题,嗯,浑然天成;
2、高德推出了全球定位,全英文地图,全英文检索(全国仅此一家!)等潮流产品,各种非常适合“国际范儿”这个命题。
-------------------------------------------------------------------------------------------------------------------------------
原文链接:/article/4782524.html
相关文章推荐
- iOS Xcode 解决每次版本更新后插件都不好用的问题
- ios中json解析出现的null问题
- iOS Provisioning Profile(Certificate)与Code Signing详解
- iOS设计模式汇总
- iphone5 ios7.1 上下有黑边 解决方案
- 27个提升效率的iOS开源库推荐
- IOS BLE4.0蓝牙和外设连接和收发数据的流程
- iOS每日一记之---------改变Btn点击时的背景颜色
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编
- ios afnetworking 错误解决
- 我的iOS高效编程秘诀—坚持编程习惯
- iOS小白进阶之旅(一)
- iOS 开发中农历与公历的转换,星座计算。
- nagios服务的搭建
- iOS开发日记1-tableview编辑
- Ios日志打印
- iOS开发~终极教程索引
- iOS 获取本地设备相关信息,如:IP地址
- iOS数据持久化---对象归档
- iOS 系统定位的说明与使用