Megosztás a következőn keresztül:


Sokszögréteg hozzáadása a térképhez az iOS SDK-ban (előzetes verzió)

Ez a cikk bemutatja, hogyan jelenítheti meg a térkép geometriáit Polygon és MultiPolygon funkcióit egy sokszögréteg használatával.

Feljegyzés

Azure Térképek iOS SDK kivonása

Az iOS-hez készült Azure Térképek Natív SDK elavult, és 25.31-én megszűnik. A szolgáltatáskimaradások elkerülése érdekében 25.31-ig migráljon az Azure Térképek Web SDK-ba. További információ: Az Azure Térképek iOS SDK migrálási útmutatója.

Előfeltételek

Mindenképpen végezze el a rövid útmutató lépéseit: iOS-alkalmazásdokumentum létrehozása. A cikkben szereplő kódblokkok beszúrhatók a viewDidLoad következő függvénybe ViewController: .

Sokszögréteg használata

Amikor egy sokszögréteg csatlakozik egy adatforráshoz, és betöltődik a térképre, az megjeleníti a területet Polygon és MultiPolygon a funkciókat. Sokszög létrehozásához adja hozzá egy adatforráshoz, és az osztály használatával PolygonLayer jelenítse meg egy sokszögréteggel.

// Create a data source and add it to the map.
let source = DataSource()
map.sources.add(source)

// Create a rectangular polygon.
source.add(geometry: Polygon([
    CLLocationCoordinate2D(latitude: 40.76799, longitude: -73.98235),
    CLLocationCoordinate2D(latitude: 40.80044, longitude: -73.95785),
    CLLocationCoordinate2D(latitude: 40.79680, longitude: -73.94928),
    CLLocationCoordinate2D(latitude: 40.76437, longitude: -73.97317),
    CLLocationCoordinate2D(latitude: 40.76799, longitude: -73.98235)
]))

// Create and add a polygon layer to render the polygon on the map, below the label layer.
map.layers.insertLayer(
    PolygonLayer(source: source, options: [
        .fillColor(.red),
        .fillOpacity(0.7)
    ]),
    below: "labels"
)

Az alábbi képernyőképen a fenti kód látható, amely egy sokszög területét jeleníti meg egy sokszögréteg használatával.

Sokszögréteget használó sokszöget ábrázoló kép.

Sokszög és vonalréteg együttes használata

A vonalréteg a sokszögek körvonalának megjelenítésére szolgál. Az alábbi kódminta az előző példához hasonló sokszöget jelenít meg, de most hozzáad egy sorréteget. Ez a vonalréteg egy második réteg, amely az adatforráshoz csatlakozik.

// Create a data source and add it to the map.
let source = DataSource()
map.sources.add(source)

// Create a rectangular polygon.
source.add(geometry: Polygon([
    CLLocationCoordinate2D(latitude: 40.76799, longitude: -73.98235),
    CLLocationCoordinate2D(latitude: 40.80044, longitude: -73.95785),
    CLLocationCoordinate2D(latitude: 40.79680, longitude: -73.94928),
    CLLocationCoordinate2D(latitude: 40.76437, longitude: -73.97317),
    CLLocationCoordinate2D(latitude: 40.76799, longitude: -73.98235)
]))

// Create and add a polygon layer to render the polygon on the map, below the label layer.
map.layers.insertLayer(
    PolygonLayer(source: source, options: [
        .fillColor(UIColor(red: 0, green: 0.78, blue: 0.78, alpha: 0.5))
    ]),
    below: "labels"
)

// Create and add a line layer to render the outline of the polygon.
map.layers.addLayer(LineLayer(source: source, options: [
    .strokeColor(.red),
    .strokeWidth(2)
]))

Az alábbi képernyőképen látható, hogy a fenti kód egy vonalréteg használatával renderelt sokszöget jelenít meg annak körvonalával.

Vonalréteg használatával renderelt sokszög képe.

Tipp.

Ha vonalréteggel taglal egy sokszöget, mindenképpen zárja be az összes gyűrűt sokszögben, hogy minden ponttömbnek azonos kezdő és végpontja legyen. Ha ez nem történik meg, előfordulhat, hogy a vonalréteg nem csatlakoztatja a sokszög utolsó pontját az első ponthoz.

Sokszög kitöltése mintával

A sokszög színnel való kitöltése mellett képmintával is kitöltheti a sokszöget. Töltsön be egy képmintát a térképek képforrásaiba, majd hivatkozzon erre a képre a fillPattern sokszögréteg beállításával.

// Load an image pattern into the map image sprite.
map.images.add(UIImage(named: "fill-checker-red")!, withID: "fill-checker-red")

// Create a data source and add it to the map.
let source = DataSource()
map.sources.add(source)

// Create a polygon.
source.add(geometry: Polygon([
    CLLocationCoordinate2D(latitude: -20, longitude: -50),
    CLLocationCoordinate2D(latitude: 40, longitude: 0),
    CLLocationCoordinate2D(latitude: -20, longitude: 50),
    CLLocationCoordinate2D(latitude: -20, longitude: -50)
]))

// Create and add a polygon layer to render the polygon on the map, below the label layer.
map.layers.insertLayer(
    PolygonLayer(source: source, options: [
        .fillPattern("fill-checker-red"),
        .fillOpacity(0.5)
    ]),
    below: "labels"
)

Ebben a mintában a következő kép lett betöltve az alkalmazás eszközmappájába.

Egy piros ellenőrző kitöltési mintával ellátott sokszöget ábrázoló kép.
fill-checker-red.png

Az alábbiakban egy képernyőkép látható a fenti kódról, amely egy sokszöget jelenít meg kitöltési mintával a térképen.

A fenti kódot ábrázoló kép egy sokszöget jelenít meg kitöltési mintával a térképen.

További információk

További kódmintákat a térképekhez a következő cikkekben talál: