在iOS 6之前,打开这样的URL会打开(Google)地图应用:
NSURL *url = [NSURL URLWithString:@"http://maps.google.com/?q=New+York"];
[[UIApplication sharedApplication] openURL:url];
Run Code Online (Sandbox Code Playgroud)
现在有了新的Apple Maps实现,这只会将Mobile Safari打开到Google Maps.如何在iOS 6中实现相同的行为?如何以编程方式打开地图应用并将其指向特定位置/地址/搜索/其他?
任何人都知道如何检查Apple Maps是否已安装?我在文档中找不到任何内容.
使用iOS10,用户可以删除Apple Maps应用程序.对于谷歌地图,我们可以UIApplication.shared.canOpenURL()用来检查它是否已安装.我不知道检查Apple Maps存在这样的事情.
当然,你可以检查是否打开MKMapItem与mapItem.openInMaps()失败-但是,这并不帮助提前检查.
我正在传递地图的选项,但这似乎与缩放级别没有任何关系?它保持相同的低缩放级别.我错过了什么?
func openMapForPlace() {
let regionDistance:CLLocationDistance = 10000
var coordinates = CLLocationCoordinate2DMake(detailItem!.geoLatitude, detailItem!.geoLongitude)
let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
var options = [
MKLaunchOptionsMapCenterKey: NSValue(MKCoordinate: regionSpan.center),
MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
]
var placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
var mapItem = MKMapItem(placemark: placemark)
mapItem.name = detailItem!.cityName
mapItem.openInMapsWithLaunchOptions(options)
}
Run Code Online (Sandbox Code Playgroud) 我有一个集成了地图套件的视图控制器.我需要在打开地图之前拍摄警报,要求从地图的所有类似应用中进行选择以打开它.例如,如果谷歌地图应用程序安装在我的iPhone中,则应该有一个选项,以及默认的mapkit视图.是否有可能实现此功能,从iphone扫描每个类似的应用程序,并返回结果作为打开地图的选项.
我在Swift 3中理解Apple的MapKit时遇到了一些麻烦.
我在这里找到了一个例子:如何用swift中的坐标以编程方式打开地图App?
public func openMapForPlace(lat:Double = 0, long:Double = 0, placeName:String = "") {
let latitude: CLLocationDegrees = lat
let longitude: CLLocationDegrees = long
let regionDistance:CLLocationDistance = 100
let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
let options = [
MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center),
MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)
]
let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
let mapItem = MKMapItem(placemark: placemark)
mapItem.name = placeName
mapItem.openInMaps(launchOptions: options)
}
Run Code Online (Sandbox Code Playgroud)
这绝对是游泳,除了在这种情况下我需要使用地址而不是坐标.
我已经找到了使用谷歌地图做到这一点的方法,但我似乎无法找到Apple地图的具体答案,如果它存在,我已经完成了它的上釉.
如果有人能帮助我理解正确的方法是什么,那将是惊人的.我正在使用:
在 Android 中,可以使用 URI 来调用 GoogleMaps,如下所示
https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393&query_place_id=ChIJKxjxuaNqkFQR3CK6O1HNNqY
Run Code Online (Sandbox Code Playgroud)
正如这个答案中给出的。
此查询会在 Android 设备上打开 GoogleMaps,地点信息如下图所示:
我正在寻找 IOS 与 GoogleMaps 的类似结果。我在 GoogleMaps SDK 文档和互联网上进行了搜索,但找不到答案。
我们可以通过 GoogleMaps 在 IOS 上实现这一目标吗?
我试图使用这些代码从我的应用程序打开谷歌地图应用程序
if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"comgooglemaps://")!)) {
UIApplication.sharedApplication().openURL(NSURL(string:
"comgooglemaps://?saddr=\(fromLatitude),\(fromLongitude)&daddr=\(toLatitude),\(toLongitude)&directionsmode=driving")!)
}else{
showAlert()
}
Run Code Online (Sandbox Code Playgroud)
我已经在我的iphone中安装了谷歌地图,但这段代码总是转向其他部分
ios ×6
mapkit ×5
swift ×5
google-maps ×2
dictionary ×1
geocoding ×1
geolocation ×1
ios10 ×1
ios6 ×1
ios8 ×1
objective-c ×1
url-scheme ×1
xcode ×1