2010-10-19 82 views
5

我已经阅读了大量关于想要在iPhone上在地图上绘制路线的开发人员的帖子,但没有令人满意的答案如何最好地实现这一点。您可以使用Route-Me库,在顶层MKMapView上添加一个图层,或者将坐标发送到手机地图软件,然后从您的应用程序导航,这在我看来是糟糕的用户体验。 这一切都没有很好的解决问题。iPhone上的标准/最佳路线实施方式是什么?

一些邮政写道,有法律障碍,其他人写道它是关于许可证钱。这必须是一个非常普遍的要求,因此也是一个实现的共同特征。那么,做到这一点的事实上的标准方法是什么?

有经验的人可以分享他们对这个问题的见解吗?

BR //克里斯托弗

+0

到底什么才能解决这个问题,对你有好处?你说参考的方法是一个糟糕的用户体验,但没有定义好什么是好的。 – Nick 2010-10-19 10:08:19

+0

在我开发的应用程序的第一个版本之后,有许多用户抱怨不得不“离开”应用程序以获取路线。对于良好的用户体验,我的想法是直接在地图上添加行车路线,只要您可以使用导航栏返回到上一个视图,地图就可以在自己的视图中。猜猜我说的是你必须能够留在应用程序中。这关于用户体验。第二部分是:你如何做到这一点? – Christofffer 2010-10-19 11:42:34

回答

3

所以我决定使用苹果开发者技术支持,真正明确了这一点。这是回复:


你好,

谢谢您的查询到的苹果全球开发者技术支持。 我正在回应,告诉您我已收到您的技术援助请求。

这样做的事实上的标准方式是使用Map应用程序。我意识到这不是你想要的。你想留在你的应用程序。当涉及到用户指导时,MKMapView API不会为您提供这种级别的支持。您将不得不依靠单独的Web服务来获取这些方向,然后在MKMapView上绘制每个经纬度点。基本上,您需要向Google Directions API发送HTTP请求。这些条款要求您在Google地图上显示结果;因为MKMapView显示谷歌,这应该是确定的。

http://code.google.com/apis/maps/documentation/directions/#DirectionsRequests

如果您获得从设行车路线成功人士称雅虎或谷歌的服务,将的MKMapView让你绘制使用MKOverlayPathView和MKShapes绘制多边形的形状像一个可视化课程。苹果公司在 http://developer.apple.com/library/ios/#samplecode/KMLViewer/Introduction/Intro.html 上有一个名为“KMLViewer”的示例它向您展示了如何绘制基于KML的点。由于我们正在处理纬度/经度坐标,所以方法相同。

您可能需要考虑使用Map应用程序,这会相当容易。所有你需要的是这样的:

// for lat/long directions 
NSString *urlString1 = @"http://maps.google.com/maps?daddr=37.324885,-122.032378&saddr=37.332094,-122.03124"; 

// for address directions 
NSString *urlString2 = @"http://maps.google.com/maps?f=d&source=s_d&saddr=1+Infinite+Loop,+Cupertino,+CA+95014&daddr=Mandarin+Gourmet,+Cupertino,+CA&hl=en&geocode=FcajOQIdYvO5-Ckbd16TtrWPgDFAc4Pi50E92A%3BFZ2GOQIdLe65-CHRv0sTH7YegykLqKn9rbWPgDGUnqKbIqi1Bg&mra=ls&sll=37.325567,-122.032989&sspn=0.007243,0.007285&ie=UTF8&ll=37.328195,-122.031466&spn=0.007243,0.007285&z=17"; 

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: urlString1]]; 

第二E-MAIL:

只要是在关于使用谷歌服务条款我最后的电子邮件清楚。 Google要求您在谷歌地图上显示路线结果,这是MKMapView使用的。不过,我会仔细检查苹果自己的T & Cs,关于在MKMapView本身上使用外部服务(如用户指导)。我不希望你沿着一条路走下去寻找法律限制。


相关问题