Pergunta

Passei por certas respostas relacionadas, mas não parecem obter a resposta correta ou a resposta de que preciso.

Ao abrirmos o GoogleMap no MKMAP View, quero abrir o mapa OpenStreet no MKMAPView.

Se houver algum link ou código de amostra mostrando -o, passe -o.

desde já, obrigado

Foi útil?

Solução

O MKMAPView está em conformidade com os termos e condições do Google Map, para que ele use apenas o mapa do Google. Você não pode integrar o OpenStreetMap assim no MKMapView. O código do Google tem uma API Roteme que renderiza o OpenStreetmap no iPhone.

O Routeme também fornece uma boa documentação sobre como incluir em nosso projeto. Portanto, fique à vontade para usar isso.

Outras dicas

Importar essas estruturas:

#import <MapKit/MapKit.h>

Inclua este delegado

@interface ViewController () <MKMapViewDelegate>

Adicione este código ao seu método preexistente do 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; 
}

E isso em algum lugar da sua classe é o delegado do MapView (provavelmente um controlador de exibição).

(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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top