Dela via


Ange kartformat i iOS SDK (förhandsversion)

Den här artikeln visar två sätt att ange kartformat med hjälp av Azure Kartor iOS SDK. Azure Kartor har sex olika kartformat att välja mellan. Mer information om kartformat som stöds finns i kartformat som stöds i Azure Kartor.

Kommentar

Azure Kartor iOS SDK-tillbakadragning

Azure Kartor Native SDK för iOS är nu inaktuell och kommer att dras tillbaka den 3/31/25. För att undvika tjänststörningar migrerar du till Azure Kartor Web SDK senast 3/31/25. Mer information finns i migreringsguiden för Azure Kartor iOS SDK.

Förutsättningar

Ange kartformat i kartkontrollens init

Du kan ange ett kartformat i kartkontrollens init. Följande kod anger centrumplats, zoomnivå och kartformat.

MapControl(options: [
    CameraOption.center(lat: 47.602806, lng: -122.329330),
    CameraOption.zoom(12),
    StyleOption.style(.grayscaleDark)
])

Följande skärmbild visar ovanstående kod som visar en färdplan med gråskalans mörka formatmall.

Skärmbild av en karta med det mörka kartformatet i gråskala.

Ange kartformat via setStyleOptions metod

Kartformatet kan anges programmatiskt i kod med hjälp setStyleOptions av kartans metod. Följande kod anger centerplatsen och zoomnivån med hjälp av maps-metoden setCameraOptions och kartformatet till .satelliteRoadLabels.

mapControl.onReady { map in

    //Set the camera of the map.
    map.setCameraOptions([
        .center(lat: 47.64, lng: -122.33),
        .zoom(14)
    ])

    //Set the style of the map.
    map.setStyleOptions([.style(.satelliteRoadLabels)])
}

Följande skärmbild visar ovanstående kod som visar en karta med stilen satellitvägetiketter.

Skärmbild av en karta med stilen för satellitetiketter.

Ange kartkameran

Kartkameran styr vilken del av världen som visas i kartvyporten. Det finns två huvudsakliga metoder för att ange kartans position. med hjälp av mitten och zooma, eller skicka in en avgränsningsruta. Följande kod visar hur du ställer in alla valfria kameraalternativ när du använder center och zoom.

//Set the camera of the map using center and zoom.
map.setCameraOptions([
    .center(lat: 47.64, lng: -122.33),
    .zoom(14),
    .pitch(45),
    .bearing(90),
    .minZoom(10),
    .maxZoom(14)
])

Ofta är det önskvärt att fokusera kartan över en uppsättning data. En avgränsningsruta kan beräknas från funktioner med hjälp av BoundingBox.fromData(_:) metoden och kan skickas till bounds alternativet för kartkameran. När du ställer in en kartvy baserat på en avgränsningsruta är det ofta användbart att ange ett padding värde för att ta hänsyn till punktstorleken för datapunkter som återges som bubblor eller symboler. Följande kod visar hur du ställer in alla valfria kameraalternativ när du använder en avgränsningsruta för att ange kamerans position.

//Set the camera of the map using a bounding box.
map.setCameraBoundsOptions([
    .bounds(
        BoundingBox(
            sw: CLLocationCoordinate2D(latitude: 47.4333, longitude: -122.4594),
            ne: CLLocationCoordinate2D(latitude: 47.75758, longitude: -122.21866)
        )
    ),
    .padding(20),
    .maxZoom(14)
])

Breddförhållandet för en avgränsningsruta kanske inte är samma som breddförhållandet på kartan, eftersom kartan ofta visar hela avgränsningsrutans område och ofta bara är tätt vertikalt eller vågrätt.

Animera kartvy

När du ställer in kameraalternativ för kartan kan animeringsalternativ också användas för att skapa en övergång mellan den aktuella kartvyn och nästa. De här alternativen anger vilken typ av animering och varaktighet det ska ta att flytta kameran.

Alternativ Description
animationDuration(_ duration: Double) Anger hur länge kameran animeras mellan vyerna i millisekunder (ms).
animationType(_ animationType: AnimationType) Anger vilken typ av animeringsövergång som ska utföras.

- .jump - en omedelbar förändring.
- .ease - gradvis ändring av kamerans inställningar.
- .fly - gradvis ändring av kamerans inställningar efter en båge som liknar flygning.

Följande kod visar hur du animerar kartvyn med hjälp av en .fly animering under tre sekunder.

map.setCameraOptions([
    .animationType(.fly),
    .animationDuration(3000)
    .center(lat: 47.6, lng: -122.33),
    .zoom(12),
])

Följande animering visar koden ovan som animerar kartvyn från New York till Seattle.

Mappa animera kameran från New York till Seattle.

Ytterligare information

I följande artiklar finns fler kodexempel att lägga till i dina kartor: