gpt4 book ai didi

iphone - 如何使用 iPhone 中已安装的 GPS 系统

转载 作者:行者123 更新时间:2023-12-03 16:59:38 28 4
gpt4 key购买 nike

我想询问用户他想要使用哪个 GPS 应用程序来将他带到特定位置。我想我必须首先检查安装了哪些 GPS 应用程序...我该怎么做?当用户选择特定应用程序时,我如何激活它并告诉它路由到特定目的地?

最佳答案

它缺乏资源,但它是可行的...复制并粘贴我的旧源代码...只需将 Tip 替换为其他内容即可。这是一个简单的类,其中包含 locLatitude 和 locLongitude 值以及一些更多详细信息。不支持 TomTom,因为我无法找到它的 URL 方案。由于我不再需要它,所以我没有尝试再次搜索它。

typedef enum {
ExternalNavigationAppGoogleMaps,
ExternalNavigationAppNavigon,
ExternalNavigationAppTomTom
} ExternalNavigationApp;

+ (BOOL)isSupported:(ExternalNavigationApp)navigationApp;
+ (BOOL)navigateTo:(Tip *)tip viaApp:(ExternalNavigationApp)navigationApp;
+ (BOOL)navigateTo:(Tip *)tip from:(CLLocationCoordinate2D)from viaApp:(ExternalNavigationApp)navigationApp;

...实现部分...

+ (NSString *)googleMapsUrl:(Tip *)tip from:(CLLocationCoordinate2D)from {  
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%1.6f,%1.6f&daddr=%1.6f,%1.6f",
from.latitude, from.longitude,
[tip.locLatitude floatValue], [tip.locLongitude floatValue]];
return urlString;
}

+ (NSString *)navigonAppUrl:(Tip *)tip {
NSString *urlString = [NSString stringWithFormat:@"navigon://%@|%@||||||%f|%f",
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"],
tip.name,
[tip.locLongitude floatValue],
[tip.locLatitude floatValue]];

return urlString;
}

+ (NSString *)tomtomAppUrl:(Tip *)tip {
return nil;
}

+ (NSURL *)urlForApp:(ExternalNavigationApp)navigationApp withTip:(Tip *)tip from:(CLLocationCoordinate2D)from {
NSString *urlString = nil;
if ( ExternalNavigationAppNavigon == navigationApp ) {
urlString = [self navigonAppUrl:tip];
} else if ( ExternalNavigationAppTomTom == navigationApp ) {
urlString = [self tomtomAppUrl:tip];
} else if ( ExternalNavigationAppGoogleMaps == navigationApp ) {
urlString = [self googleMapsUrl:tip from:from];
}

if ( urlString == nil )
return nil;

return [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}

+ (BOOL)isSupported:(ExternalNavigationApp)navigationApp {
CLLocationCoordinate2D coord;
NSURL *url = [self urlForApp:navigationApp withTip:nil from:coord];

if ( url == nil )
return NO;

return [[UIApplication sharedApplication]canOpenURL:url];
}

+ (BOOL)navigateTo:(Tip *)tip viaApp:(ExternalNavigationApp)navigationApp {
CLLocationCoordinate2D coord;
NSURL *url = [self urlForApp:navigationApp withTip:tip from:coord];

if ( url == nil )
return NO;

return [[UIApplication sharedApplication] openURL:url];
}

+ (BOOL)navigateTo:(Tip *)tip from:(CLLocationCoordinate2D)from viaApp:(ExternalNavigationApp)navigationApp {
NSURL *url = [self urlForApp:navigationApp withTip:tip from:from];

if ( url == nil )
return NO;

return [[UIApplication sharedApplication] openURL:url];
}

关于iphone - 如何使用 iPhone 中已安装的 GPS 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com