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?
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.
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 .
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 .
Tags und Links google-maps ios mapkit mapbox cloudmade