我用 Mapkit 实现了一个简单的应用程序,它显示了某个地址的一个 pin。如果我单击此图钉,我可以看到位置的详细信息和披露指示。在这一点上,我想让用户获得从他的位置到那里的路线。
我唯一的想法是推动一个网络视图,该视图在谷歌地图中打开一个具有所需坐标的 URL。有很多有效且可用的方法来做到这一点吗?还有其他想法吗?
在此先感谢,亚萨
我用 Mapkit 实现了一个简单的应用程序,它显示了某个地址的一个 pin。如果我单击此图钉,我可以看到位置的详细信息和披露指示。在这一点上,我想让用户获得从他的位置到那里的路线。
我唯一的想法是推动一个网络视图,该视图在谷歌地图中打开一个具有所需坐标的 URL。有很多有效且可用的方法来做到这一点吗?还有其他想法吗?
在此先感谢,亚萨
您必须决定是要嵌入UIWebView
还是让用户转到地图应用程序。如果您让用户退出您的应用程序,但地图应用程序中的用户体验远好于网络体验,您会失去“用户连接”。出于这个原因,我选择了地图应用程序。
请参阅http://wiki.akosma.com/IPhone_URL_Schemes#Maps了解如何通过UIApplication openURL
.
请注意,如果未安装地图应用程序(只是模拟器?),这将打开网页,但在 Safari 中而不是在嵌入式UIWebView
.
实际上,在 iOS7 中,您可以使用 MapKit 在您的应用程序中指定方向。 这是我的来源。我引用:
MKDirectionRequest 和 MKDirectionResponse 许多移动用户依赖来自他们设备的方向,在 iOS 7 中,开发人员现在可以在您的应用程序的上下文中提供它们,而不是切换到地图应用程序。您从源和目标开始您的请求。其他选项包括替代路线、运输类型和出发/到达时间。
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
> request.source = source; request.destination = destination;
> request.requestsAlternateRoutes = YES; MKDirections *directions =
> [[MKDirections alloc] initWithRequest:request]; [directions
> calculateDirectionsWithCompletionHandler: ^(MKDirectionsResponse
> *response, NSError *error) { if (error) { NSLog(@"Error is %@",error); } else { [self showDirections:response]; } }];
这
MKDirectionsResponse 提供了大量信息,其中包括一个 MKRoutes 数组,每个 MKRoutes 都包含一个 MKRouteStep 数组,以便您可以提供每个步骤的路线,让您的用户到达他们的位置。通过将 MKRoute 和 MKRouteSteps 放在一个数组中,可以很容易地在表格中显示信息或在地图上显示信息,如下所示:
for (MKRoute *route in _response.routes) { [_mapView
> addOverlay:route.polyline level: MKOverlayLevelAboveRoads]; }
结果可能会随着用户移动设备而频繁更新,因此不要长时间缓存结果。
借助 Google Maps API 中的类似功能,Google 对您的应用在一天内可以处理的请求数量施加了限制。苹果选择了不同的方向和速率限制每台设备,这意味着没有每个应用程序或每个开发人员的使用限制。如果设备达到高使用率,则可能会受到限制,这旨在限制将执行诸如递归发出请求之类的操作的应用程序。
抱歉,如果这个答案的格式很奇怪,我发现所有引号和代码格式都很困难。希望这可以帮助。