Kat*_*hai 27 objective-c mkmapview ios apple-maps
我知道谷歌地图是最好的地图,但我不想下载一堆额外的库和所有这些.我更愿意做一些快速而简单的事情来获得从A点到B点的快速路线并完成它.有没有办法用内置的函数/库来做到这一点?有人能指出我正确的方向吗?
编辑
在我的情况下,我不是试图转弯方向或任何东西,我只是想从头到尾划一条线.也许可以选择要走哪条路线.有没有办法做到或没有?
Kam*_*ros 66
在iOS 7中,您可以使用获取和显示路线MKDirectionsRequest.
以下是一些示例代码,用于显示从当前位置到另一个地图项目的路线:
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
[request setSource:[MKMapItem mapItemForCurrentLocation]];
[request setDestination:myMapItem];
[request setTransportType:MKDirectionsTransportTypeAny]; // This can be limited to automobile and walking directions.
[request setRequestsAlternateRoutes:YES]; // Gives you several route options.
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
if (!error) {
for (MKRoute *route in [response routes]) {
[myMapView addOverlay:[route polyline] level:MKOverlayLevelAboveRoads]; // Draws the route above roads, but below labels.
// You can also get turn-by-turn steps, distance, advisory notices, ETA, etc by accessing various route properties.
}
}
}];
Run Code Online (Sandbox Code Playgroud)
如果您是iOS 7的新用户,则需要实现该mapView:rendererForOverlay:方法以显示任何叠加层.就像是:
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolyline class]]) {
MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
[renderer setStrokeColor:[UIColor blueColor]];
[renderer setLineWidth:5.0];
return renderer;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16933 次 |
| 最近记录: |