Benutzerdefinierter Kartenstil in MapKit

8

Ich bin auf der Suche nach einer Möglichkeit, einen benutzerdefinierten Kartenstil in iOS 7 zu implementieren, genau wie Sie dies mit Google tun können Karten Ich habe einige Posts gefunden, die sagen, dass dies mit MapKit nicht möglich ist, aber sie wurden alle vor einer Weile gepostet. Um zu verdeutlichen, nach Stil, spreche ich über benutzerdefinierte Farben und vorzugsweise auch Schriften. Beispiel für den benutzerdefinierten Google Map-Stil unten.

Ссылка

Ich würde MapKit aus Performance-Gründen lieber verwenden, aber wenn es nicht unterstützt wird, kann ich auch andere Frameworks verwenden. Die, die ich gesehen habe, sind MapBox und Cloudmade und natürlich das Google Maps SDK.

Gibt es eine Möglichkeit, dies mit MapKit zu tun? Wenn nicht, was ist der beste Weg zu gehen?

    
Daniel Larsson 28.11.2013, 20:02
quelle

3 Antworten

8

MKMapView macht die Eigenschaften, an denen Sie interessiert sind, nicht verfügbar. Das Google Maps SDK unterstützt benutzerdefinierte Farben und Symbole für Markierungen, die für Ihre Zwecke ausreichen.

Bearbeiten: Bleiben Sie dran für iOS 11, das diese Anpassungsstufe bieten kann.

    
Marco 28.11.2013, 21:23
quelle
15

MKMapView bietet auch die Möglichkeit, benutzerdefinierte Kachel-Overlays zu verwenden. Openstreetmap hat eine große Liste von Kachelservern, die Sie verwenden könnten, um eine benutzerdefinierte Karte zu erhalten. Natürlich besteht immer die Möglichkeit, ein eigenes Kachel-Overlay-Set zu erstellen. Der Prozess ist im Openstreetmap Wiki hier beschrieben.

Eine mögliche Implementierung in Swift könnte so aussehen:

1. Importieren Sie MapKit

%Vor%

2. Fügen Sie Overlays zur Karte hinzu

%Vor%

3. Entsprechen Sie MKMapViewDelegate

%Vor%

4. Implementieren Sie die Delegate-Methode, um den richtigen Renderer zum Anzeigen der Kacheln zu verwenden

%Vor%

Im obigen Beispiel wird overlayURL aus der Kachelserver-Liste in openstreetmap: OpenstreetMap Tile Server genommen.

>

Wenn Sie beispielsweise die Staubbeutelkarte (die einen Aquarellstil hat) verwenden möchten, würde Ihre URL wie folgt aussehen:

%Vor%

Wenn Sie nach einer dunklen Karte suchen, gehen Sie wahrscheinlich am besten mit Carto Dark: http://a.basemaps.cartocdn.com/dark_all/${z}/${x}/${y}.png .

Sehen Sie, dass die obigen URLs keine SSL-Unterstützung (HTTP) haben. Daher müssen Sie unsichere HTTP-Anfragen für diese spezifische URL erlauben, indem Sie in Ihrer Info.plist App Transport Security Settings hinzufügen. Weitere Informationen finden Sie unter diesen Link .

    
dehlen 02.08.2016 14:01
quelle
2

Eine weitere Option ist MBXMapKit , eine MapBox-Bibliothek, die auf Apples MapKit basiert, obwohl sie auf MapBox-Layer ausgerichtet ist. Es ist getrennt von dem MapBox-iOS-SDK , das ein grundlegender Neuaufbau ist, der wie MapKit funktioniert, aber nicht darauf basiert .

    
incanus 02.12.2013 20:00
quelle