私は特定の関連する回答を行ってきましたが、正解または必要な答えが得られないようです。mkmapviewでOpenStreetmapを開く方法は? -iphone
mkmapビューでgooglemapを開くと、mkmapviewでopenstreet mapを開きたいとします。
リンクまたはサンプルコードが表示されている場合は、それを渡してください。それが唯一のGoogleマップを使用していますので、事前
私は特定の関連する回答を行ってきましたが、正解または必要な答えが得られないようです。mkmapviewでOpenStreetmapを開く方法は? -iphone
mkmapビューでgooglemapを開くと、mkmapviewでopenstreet mapを開きたいとします。
リンクまたはサンプルコードが表示されている場合は、それを渡してください。それが唯一のGoogleマップを使用していますので、事前
MKMapViewで
おかげでGoogleマップの条件に準拠しています。 OpenStreetMapをMKMapViewに統合することはできません。 Googleコードには、iPhoneでOpenStreetMapをレンダリングするAPI RouteMEがあります。
RouteMeは、プロジェクトにどのように組み込むかを示す良い文書も提供しています。だから自由に使ってください。
インポートこれらのフレームワーク:
#import <MapKit/MapKit.h>
このデリゲート
@interface ViewController() <MKMapViewDelegate>
があなたの既存のviewDidLoadメソッド
(void)viewDidLoad
{
// Tile system URL template goes here
NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png";
// Associating overlay with URL template
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
// Allowing overlays on MKMapView & disabling Apple map data
overlay.canReplaceMapContent = YES;
// Adding overlay to MKMapView above Apple lables
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];
// Linking the delegate to allow the next method to be called
self.mapView.delegate = self;
}
とのMapViewのデリゲートのクラスでは、このどこか(にこのコードを追加します含めます最も可能性の高いビューコントローラ)。
(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKTileOverlay class]]) {
// Overlay the tile with the new template
return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
}
return nil;
}