ios开发lbs,IOS开发工程

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

第一步:申请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];

}

}

如何使用IOS SDK进行基于LBS的开发的问答

第一部分 使用Swift语言开发LBS应用 1、下载iOS地图SDK的最新版本 2、申请LBS密钥(见第二部分)。 3、xCode新建工程 新建一个 Single View Application 工程。注意:Language 选择 Swift 4、工程配置 a.引入地图库搜索库 左侧目录中选中工程名...

iOS端实现钉钉及其他LBS应用远程打卡

月底接到通知,晚餐补助由签到改成钉钉打卡。

作为一名技术人员,不甘于寂寞的研究了一发钉钉远程打卡..

源于我的正(dan)直(xiao),我并未在实际工作中使用,仅作为研究实现了一发

做过地图定位相关App的童鞋都应该了解 Xcode - 工具栏 - Debug - Simulate Location

它的作用是用于虚拟定位,以便于不用亲临其地模拟到达某个坐标。

同时钉钉打卡定位打卡的原理,是基于你是否到达了以公司地理坐标为圆心的某个圆。在此范围内,员工可进行打卡。

我们需要做的是使用百度、高德或者谷歌地图获取到打卡位置的GPS坐标,然后使用算法转换成iPhone所需要的坐标WGS-84。

然后在Simulate Location使用这个打卡坐标模拟打卡。

整个远程打卡的流程到此就结束了,当开启模拟定位之后,你会发现所有APP的定位均换成了这个定位,不用担心,当结束项目之后稍等一下就会回到准确的定位。

有不明白的在评论中回复即可,对你有帮助的话麻烦star一下哦

如何使用IOS SDK进行基于LBS的开发

1、下载iOS地图SDK的最新版本

2、申请LBS密钥(见第二部分)。

3、xCode新建工程

新建一个 Single View Application 工程。注意:Language 选择 Swift

4、工程配置

a. 引入地图库搜索库

左侧目录中选中工程名,在 TARGETS-Build Phases- Link Binary With Libaries 中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择解压后的 MAMapKit.framework 文件添加到工程中。

搜索库的添加方法同上。

b.引入AMap.bundle资源文件

AMap.bundle资源文件中存储了定位、默认大头针标注视图等图片,可利用这些资源图片进行开发。

左侧目录中选中工程名,在右键菜单中选择Add Files to “工程名”…,从 MAMapKit.framework-Resources 文件夹中选择 AMap.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。

c.引入系统库

左侧目录中选中工程名,在TARGETS-Build Settings- Link Binary With Libaries中点击“+”按钮,在弹出的窗口中查找并选择所需的库(见下表),单击“Add”按钮,将库文件添加到工程中。

说明:

备注中,2D表示使用2D栅格地图需要的系统文件,3D表示使用3D矢量地图需要的系统文件、Search表示使用搜索库需要的系统文件。

SystemConfiguration.framework、CoreTelephonySecurity.framework、Security.framework 是为了统计app信息使用。

d.Swift编译配置

首先:新建桥接头文件(放在工程路径下),这里命名为 AMapDemoSwift-Bridging-Header.h,在该头文件中import需要的库文件,代码如下:

#import MAMapKit/MAMapKit.h

#import AMapSearchKit/AMapSearchAPI.h

然后,左侧目录中选中工程名,在 TARGETS-Build Phases- Swift Compiler - Code Generation - Objective-C Briding Header 中输入桥接文件的路径

5、地图的显示

以3D矢量地图SDK为例,进行介绍。

在 ViewController.swift 中,继承 MAMapViewDelegate 协议,在 viewDidLoad 方法中配置用户Key,初始化 MAMapView 对象,并添加到 Subview中。代码如下:

let APIKey = "8a1383b14466a8dbf362f44357c496c0"

class ViewController: UIViewController , MAMapViewDelegate{

var mapView:MAMapView?

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

// 配置用户Key

MAMapServices.sharedServices().apiKey = APIKey

// 初始化MAMapView

initMapView()

}

func initMapView(){

mapView = MAMapView(frame: self.view.bounds)

mapView!.delegate = self

self.view.addSubview(mapView!)

}

}

运行程序,地图显示出来了,就是这样简单~


本文标题:ios开发lbs,IOS开发工程
本文地址:http://azwzsj.com/article/dsceics.html