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ö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.
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.
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.
További információk
További kódmintákat a térképekhez a következő cikkekben talál: