将自定义坐标设置为函数,Waze Integration
Set Custom Coordinates to a function, Waze Integration
我正在尝试在我的应用程序中使用 Waze
实现导航,使用他们自己的 API:here。
我想在 custom coordinates
中设置 array
然后将它们放入此 代码中:
func navigate(toLatitude latitude: Double , longitude: Double) {
if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
// Waze is installed. Launch Waze and start navigation
let urlStr: String = "waze://?ll=\(latitude),\(longitude)&navigate=yes"
UIApplication.shared.openURL(URL(string: urlStr)!)
}
else {
// Waze is not installed. Launch AppStore to install Waze app
UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
}
}
我试过设置不同类型的阵列,但没能成功。因此,如果您能帮助我设置自定义数组,其中包含可以与代码一起正常工作的纬度和经度,那就太棒了
你的帮助会很有帮助,
提前致谢。
创建用于保存经纬度的自定义数组:
NSMutableArray *latLongArray = [[NSMutableArray alloc]init];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
替换经纬度值。
Waze
应用仅支持目的地 latitude
和 longitude
.
waze://?ll=<lat>,<lon>&navigate=yes
CLLocationCordiates
会期望两个参数latitude
和longitude
,也就是CLLocationDegrees
类型。 CLLocationDegrees
只不过是 Double
值。
let location = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
如果您有 double 值,则无需构造为 CLLocationCoordinate2D
。您可以使用您在问题中提到的 function
-> navigate()
将值传递给以下函数以打开 Waze
应用程序。
func openWaze(location : CLLocationCoordinate2D) {
if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
// Waze is installed. Launch Waze and start navigation
let urlStr: String = "waze://?ll=\(location.latitude),\(location.longitude)&navigate=yes"
UIApplication.shared.openURL(URL(string: urlStr)!)
}
else {
// Waze is not installed. Launch AppStore to install Waze app
UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
}
}
使用 iOS SDK 9.0 及更高版本进行编译时,您必须使用以下内容更新应用程序的 属性 列表文件以包含 Waze:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>waze</string>
</array>
我正在尝试在我的应用程序中使用 Waze
实现导航,使用他们自己的 API:here。
我想在 custom coordinates
中设置 array
然后将它们放入此 代码中:
func navigate(toLatitude latitude: Double , longitude: Double) {
if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
// Waze is installed. Launch Waze and start navigation
let urlStr: String = "waze://?ll=\(latitude),\(longitude)&navigate=yes"
UIApplication.shared.openURL(URL(string: urlStr)!)
}
else {
// Waze is not installed. Launch AppStore to install Waze app
UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
}
}
我试过设置不同类型的阵列,但没能成功。因此,如果您能帮助我设置自定义数组,其中包含可以与代码一起正常工作的纬度和经度,那就太棒了
你的帮助会很有帮助,
提前致谢。
创建用于保存经纬度的自定义数组:
NSMutableArray *latLongArray = [[NSMutableArray alloc]init];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
[latLongArray addObject :[NSDictionary dictionaryWithObjectsAndKeys:lat,@"latitude",long,@"longitude",nil]];
替换经纬度值。
Waze
应用仅支持目的地 latitude
和 longitude
.
waze://?ll=<lat>,<lon>&navigate=yes
CLLocationCordiates
会期望两个参数latitude
和longitude
,也就是CLLocationDegrees
类型。 CLLocationDegrees
只不过是 Double
值。
let location = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
如果您有 double 值,则无需构造为 CLLocationCoordinate2D
。您可以使用您在问题中提到的 function
-> navigate()
将值传递给以下函数以打开 Waze
应用程序。
func openWaze(location : CLLocationCoordinate2D) {
if UIApplication.shared.canOpenURL(URL(string: "waze://")!) {
// Waze is installed. Launch Waze and start navigation
let urlStr: String = "waze://?ll=\(location.latitude),\(location.longitude)&navigate=yes"
UIApplication.shared.openURL(URL(string: urlStr)!)
}
else {
// Waze is not installed. Launch AppStore to install Waze app
UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!)
}
}
使用 iOS SDK 9.0 及更高版本进行编译时,您必须使用以下内容更新应用程序的 属性 列表文件以包含 Waze:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>waze</string>
</array>