2014-09-05 99 views
1

我现在正在考虑为iOS的应用程序,它可以发送短信给其他人(没有互联网连接)与URL链接,让他们离线指向我的位置本地地图当他们点击链接的应用程序。 我知道它可以用这种URL来完成:苹果地图从当前位置的路线请求URL

http://maps.apple.com/maps?saddr=<their location>&daddr=<my location, filled by my app> 

当然,我可以离开saddr空白,让他们从开始点自动完成列表中选择自己当前的位置,但它会带他们还差1步得到方向。我只是想确保给他们最方便的方式。

如何指导原生地图应用程序自动获取短信接收用户的当前位置通过此URL?我需要一些这样的事:

http://maps.apple.com/maps?saddr=current_location&daddr=<my location, filled by my app> 

我也想这个链接发送给其他平台的用户,如与Android用户,我可以使用:

http://maps.google.com/maps?saddr=current_location&daddr=<my location, filled by my app> 

的Windows Phone(我还不知道):

http://maps.???.com/maps?saddr=current_location&daddr=<my location, filled by my app> 

任何关键字或答复将非常感激!

回答

10

你非常接近!

苹果地图:

http://maps.apple.com/maps?saddr=Current%20Location&daddr=<Your Location> 

谷歌地图:

comgooglemaps-x-callback://?saddr=&daddr=<Your Location> 
+0

我的英雄。谢谢它的作品! – FlySoFast 2015-01-21 03:45:28

+1

这有效。对于谷歌地图,你不能添加saddr参数,并会工作,苹果的方式有点笨,当前的位置应该是默认的,但你需要扭转当前的%20位置。谢谢。 – rr1g0 2015-02-08 00:05:00

+0

我同意。苹果公司有点落后于那个时代。没问题 - 很高兴能有帮助。 – Spaceship09 2015-02-09 09:50:44

1

如果您正在使用的Objective-C:

NSString *urlString = [NSString stringWithFormat:@"maps.apple.com/maps?saddr=&daddr=%@,%@",destinationLatitude,destinationLongitude]; 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]]; 

如果您使用的SWIFT 2.2:

var string = "http://maps.apple.com/?saddr=&daddr=\(destinationLatitude),\(destinationLongitude)" 
    UIApplication.sharedApplication().openURL(NSURL(string: string)!) 

如果您使用的是swift 3.0:

var string = "http://maps.apple.com/?saddr=&daddr=\(destinationLatitude),\(destinationLongitude)" 
    UIApplication.shared.openURL(URL(string: string)!) 
相关问题