使用场景:类似在Mac版微信中点击一条消息(此消息是某人发送的位置)可以调起系统地图,并且在指定的经纬度插上大头针,搜索框内展示相应的name内容。
How to open maps App programmatically with coordinates in swift?
参考链接:
https://stackoverflow.com/questions/28604429/how-to-open-maps-app-programmatically-with-coordinates-in-swift/28622266
需要引入:
import <MapKit/MapKit.h>
import <CoreLocation/CoreLocation.h>
这2个框架
然后在相应的点击事件添加以下代码:
NSString *name =@"地址名";
NSString *info = @"地址详情";
CLLocationDegrees lat = [dic[@"latitude"] doubleValue];
CLLocationDegrees lon = [dic[@"longitude"] doubleValue];
CLLocationCoordinate2D coo = CLLocationCoordinate2DMake(lat,lon);
CLLocationDistance dis = 300;
MKCoordinateRegion re = MKCoordinateRegionMakeWithDistance(coo, dis, dis);
MKPlacemark *mark = [[MKPlacemark alloc] initWithCoordinate:coo addressDictionary:@{kABAddressStreetKey:info,kABAddressStateKey:name}];//这里携带的是经纬度,和点击大头针展示的地址名字的地址详情
MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:mark];
item.name = name;//这里展示的是系统地图调起后,搜索框里边的内容
[item openInMapsWithLaunchOptions:@{MKLaunchOptionsMapCenterKey:[NSValue valueWithMKCoordinate:re.center],MKLaunchOptionsMapSpanKey:[NSValue valueWithMKCoordinateSpan:re.span]}];//调起地图展示的地图中心点和范围