2010-11-25 11 views
2

私は特定の関連する回答を行ってきましたが、正解または必要な答えが得られないようです。mkmapviewでOpenStreetmapを開く方法は? -iphone

mkmapビューでgooglemapを開くと、mkmapviewでopenstreet mapを開きたいとします。

リンクまたはサンプルコードが表示されている場合は、それを渡してください。それが唯一のGoogleマップを使用していますので、事前

答えて

4

MKMapViewで

おかげでGoogleマップの条件に準拠しています。 OpenStreetMapをMKMapViewに統合することはできません。 Googleコードには、iPhoneでOpenStreetMapをレンダリングするAPI RouteMEがあります。

RouteMeは、プロジェクトにどのように組み込むかを示す良い文書も提供しています。だから自由に使ってください。

1

インポートこれらのフレームワーク:

#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; 
} 
関連する問題