问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用高德LBS开放平台开发全英文iOS 地图应用

发布网友 发布时间:2022-03-04 04:43

我来回答

1个回答

热心网友 时间:2022-03-04 06:12

第一步:申请Key,用于搜索SDK。
提示:MapKit是不需要Key的,该key仅用于高德的iOS SDK搜索功能。
第二步:初始化MKMapView ,并添加到Subview。同时,进行定位,设置定位模式,在地图上显示定位点。

注意:
(1)MapKit中的定位(showUserLocation= YES),在回调中获取的坐标不用进行坐标偏转;若使用CLLocationManager方法进行定位,需要进行坐标偏转(参考附加内容)。
(2)MapKit没有申请定位权限,需在代码中申请一下定位权限。
申请方法:在 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

构造AMapSearchAPI对象,并设置搜索结果语言。(支持英文结果的搜索功能包括:POI搜索、逆地理编码和地理编码、输入提示,能够满足基本的搜索功能)

//初始化AMapSearchAPI
- (void)initSearch
{
//构造AMapSearchAPI
_search = [[AMapSearchAPI alloc] initWithSearchKey:APIKey Delegate:self];
_search.language = AMapSearchLanguage_en;//设置语言
}

第四步:构造搜索对象,设置搜索参数,发起查询,在相应的回调中进行结果展示(如:POI查询结果以大头针标注等等)。

以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];
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...啊?我从嘴里吐出去是直的算过肺了吗?我不会从鼻子里出去_百度... 恶心呕吐是什么? 高考数学大题应注意哪些问题呢? 高考数学可不可以用高等数学啊 高考数学 基础知识点 常见考查方式 高考数学考什么内容 一般纳税人如何交所得税 以前的QQ忘记密码了那时候不要了就不找回密码了,现在想找回来,但是又没... 常州机场坐飞机流程 常州机场大巴时刻表 ...我早上九点起飞的飞机, 然后我这的机场快线大巴到机场时70分钟,_百 ... ios 怎么接入google sdk ios中使用mkmapview怎样开启定位 母亲节的由来简介 如何利用高德地图IOS SDK进行开发 iOS 的 App 用哪种地图服务好呢?苹果自己的 MAPKIT 和第三方地图厂商的有什么显著区别呢? IOS怎样向应用商店提交应用 母亲节由来的简介 iOS 使用mapKit 为什么会定位到旧金山 如何解决 iOS 里面的 MAPKIT 国内地图定位偏移问题 用百度或高德的地图API能实现哪些IOS自己的MapKit无法实现的功能? iOS MapKit 在国外使用的是什么地图数据 一个可以在两个手机上切换登陆吗?会封号吗? ios mapkit中怎么设置地理边界 iOS自带的mapkit怎么设置指南针显示的位置? 自己手机上怎么登录别人的? ios 怎么添加mapkit框架 用手机号申请的微信现在换号了怎么能登陆以前的微信? 手机微信切换账号怎么用登陆 安卓与ios 是基于什么开发的,有什么不同? 问下什么是iOS开发啊? 国内开发ios app用什么地图sdk 苹果手机里的计算器不见了怎么恢复 高德地图MAMapKit与ios自带的MKMapKit有什么区别 苹果计算器删了怎么找回来 ios 地图开发 怎么计算坡度 苹果自带计算器误删,如何找回 iOS开发包含哪些内容? 苹果手机计算器现在怎么找不到 苹果手机没有计算器了怎么恢复 怎么找回苹果手机上的计算器? ios开发需要必须使用macbook么。 苹果手机怎么计算器没了 ios开发只能在MAC下才可以吗! 开发ios软件是一开始就需要在MAC系统下吗? 手机自带计算器不见了想找回来放在桌面? 开发ios应用 是不是必须用苹果电脑 学ios开发一定要有苹果手机和苹果电脑吗? 为什么学习iOS开发一定要有Mac oppo手机计算器不见了怎么恢复 手机计算器没了,怎么找?