Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Maps Web SDK tillhandahåller en Spatial IO-modul som innehåller en SimpleDataLayer klass. Den här klassen gör det enkelt att återge formaterade funktioner på en karta. Den kan även återge datauppsättningar som har formategenskaper och datauppsättningar som innehåller blandade geometrityper.
Det enkla datalagret uppnår den här funktionen genom att omsluta flera återgivningslager och med hjälp av formatuttryck. Formatuttrycken söker i omslutna lager efter vanliga formategenskaper. Funktionerna atlas.io.read och atlas.io.write använder dessa egenskaper för att läsa och skriva format i ett filformat som stöds. När du lägger till egenskaper i ett filformat som stöds kan du använda filen för ändamål som att visa formaterade funktioner på en karta.
Klassen SimpleDataLayer innehåller också en inbyggd popup-funktion med en popup-mall. Popup-fönstret visas när en funktion har valts. Det här lagret stöder även klustrade data. När ett kluster väljs zoomar kartan in i klustret och expanderar det till enskilda punkter och underkluster. Du kan inaktivera popup-funktionen om du inte behöver den.
Klassen SimpleDataLayer är avsedd att användas på stora datauppsättningar som innehåller funktioner med många tillämpade geometrityper och formatmallar. När du använder den här klassen lägger den till ett omkostnader på sex lager som innehåller formatuttryck. Om du bara behöver återge några geometrityper och format på en funktion kan det vara mer effektivt att använda ett kärnrenderingslager. Mer information finns i Lägga till ett bubbellager på kartan, Lägg till ett linjeskikt på kartan och Lägg till ett polygonskikt på kartan.
Använda ett enkelt datalager
Du kan använda SimpleDataLayer klassen som de andra återgivningsskikten. Följande kod visar hur du använder ett enkelt datalager på en karta:
//Create a data source and add it to the map.
var datasource = new atlas.source.DataSource();
map.sources.add(datasource);
//Add a simple data layer for rendering data.
var layer = new atlas.layer.SimpleDataLayer(datasource);
map.layers.add(layer);
Följande kodfragment visar hur du använder ett enkelt datalager som refererar till data från en onlinekälla:
<script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.min.js"></script>
<script>
function InitMap() {
var map = new atlas.Map("myMap", {
center: [-73.967605, 40.780452],
zoom: 12,
view: "Auto",
//Add authentication details to connect to Azure Maps.
authOptions: {
// Get an Azure Maps key at https://azuremaps.com/.
authType: "subscriptionKey",
subscriptionKey: '{Your-Azure-Maps-Subscription-key}'
}
});
//Wait until the map resources are ready.
map.events.add("ready", function () {
//Create a data source and add it to the map.
var datasource = new atlas.source.DataSource();
map.sources.add(datasource);
//Add a simple data layer for rendering data.
var layer = new atlas.layer.SimpleDataLayer(datasource);
map.layers.add(layer);
//Load an initial data set.
const dataSet = {
type: "FeatureCollection",
bbox: [0, 0, 0, 0],
features: [
{
type: "Feature",
geometry: {
type: "Point",
coordinates: [0, 0]
},
properties: {
color: "red"
}
}
]
};
loadDataSet(dataSet);
function loadDataSet(r) {
//Update the features in the data source.
datasource.setShapes(r);
//If bounding box information is known for data, set the map view to it.
if (r.bbox) {
map.setCamera({
bounds: r.bbox,
padding: 50
});
}
}
});
}
</script>
När du lägger till funktioner i datakällan renderar det enkla datalagret dem på det lämpligaste sättet. Du kan ange formatmallar som egenskaper för varje enskild funktion.
Föregående exempelkod visar geoJSON-punktfunktionen (Geographic JavaScript Object Notation) med en color egenskap inställd på red.
Exempelkoden återger punktfunktionen med hjälp av det enkla datalagret och resultatet visas på följande sätt.
Kommentar
Värdet från datakällan "coordinates": [0, 0] åsidosätter koordinaterna center: [-73.967605, 40.780452] som du angav när kartan initierades.
Det enkla datalagret är ett kraftfullt verktyg i följande scenarier:
- En datakälla innehåller flera funktionstyper.
- Funktioner i datauppsättningen har flera formategenskaper som anges individuellt.
- Du är inte säker på vad datamängden innehåller.
När du till exempel parsar XML-dataflöden kanske du inte känner till funktionernas stil och geometrityper. Exemplet med alternativ för enkla datalager visar hur det enkla datalagret återger funktionerna i en KML-fil (Keyhole Markup Language). Du kan också se alternativen i SimpleDataLayer klassen. Källkoden för det här exemplet finns i Simple data layer options.html i Azure Maps-kodexemplen i GitHub.
Kommentar
Det här enkla datalagret använder klassen popup-mall för att visa KML-ballonger eller funktionsegenskaper som en tabell. Som standard är allt innehåll som återges i popup-fönstret begränsat i en iFrame som en säkerhetsfunktion. Det finns dock begränsningar:
- Alla funktioner för pekarlås, de vanligaste navigeringsfunktionerna, skripten och formulären är inaktiverade. Länkar kan öppnas på en ny flik när de är markerade.
- Äldre webbläsare som inte stöder parametern
srcdocpå iFrames kan bara återge en liten mängd innehåll.
Om du litar på de data som läses in i popup-fönster och vill att popup-skripten ska kunna komma åt ditt program kan du inaktivera den här funktionen. Ange sandboxContent bara alternativet i popup-mallen till false.
Standardegenskaper för formatmall som stöds
Det enkla datalagret omsluter flera av kärnrenderingsskikten: bubbla, symbol, linje, polygon och extruderad polygon. Den använder uttryck för att söka efter giltiga formategenskaper för enskilda funktioner.
De två huvuduppsättningarna med egenskapsnamn som stöds är Azure Maps och GitHub. De flesta egenskapsnamn för Azure Maps-lageralternativ stöds i det enkla datalagret som stilegenskaper för funktioner. Vissa lageralternativ inkluderar uttryck som stöder formategenskapsnamn som GitHub ofta använder.
GitHubs GeoJSON-kartstöd definierar dessa egenskapsnamn, som används för att formatera GeoJSON-filer som lagras och återges på plattformen. De flesta av GitHubs formategenskaper stöds i det enkla datalagret, förutom formateringsegenskaperna marker-symbol .
Om läsaren stöter på en mindre vanlig stilegenskap konverteras den till den mest likartade azure maps-stilegenskapen. Dessutom kan du åsidosätta standardformatuttrycken getLayers med hjälp av funktionen för det enkla datalagret och uppdatera alternativen på något av lagren.
Följande avsnitt innehåller information om standardstilegenskaperna som det enkla datalagret stöder. Ordningen på de egenskapsnamn som stöds är också prioriteten. Om två formategenskaper definieras för samma lageralternativ har den första i listan företräde. Färger kan vara valfritt CSS3-färgvärde (HEX, RGB, RGBA, HSL, HSLA) eller namngivet färgvärde.
Egenskaper för bubbelskiktsformat
Om en funktion är en Point eller en MultiPoint, och inte har en bildegenskap att använda som en anpassad ikon för att återge punkten som en symbol återges den med en BubbleLayer.
| Lageralternativ | Egenskapsnamn som stöds | Standardvärde |
|---|---|---|
color |
color, marker-color |
'#1A73AA' |
radius |
size
1, marker-size2, scale1 |
8 |
strokeColor |
strokeColor, stroke |
'#FFFFFF' |
1 Storleks- och skalningsvärdena betraktas som skalära värden och multipliceras med 8.
2 Om GitHub-alternativet marker-size anges använder radien följande värden:
| Markörstorlek | Radius |
|---|---|
small |
6 |
medium |
8 |
large |
12 |
Kluster återges också i bubbellagret. Som standard är radien för ett kluster inställd på 16. Klustrets färg varierar beroende på antalet punkter i klustret enligt definitionen i följande tabell:
| Antal punkter | Färg |
|---|---|
| >= 100 | red |
| >= 10 | yellow |
| < 10 | green |
Egenskaper för symbolformat
Om en funktion är en Point eller MultiPoint, med en bildegenskap som används som en anpassad ikon för att återge punkten som en symbol återges den med en SymbolLayer.
| Lageralternativ | Egenskapsnamn som stöds | Standardvärde |
|---|---|---|
image |
image |
none |
size |
size, marker-size1 |
1 |
rotation |
rotation |
0 |
offset |
offset |
[0, 0] |
anchor |
anchor |
'bottom' |
1 Om GitHub-alternativet marker-size har angetts används följande värden för ikonstorleksalternativet:
| Markörstorlek | Symbolstorlek |
|---|---|
small |
0.5 |
medium |
1 |
large |
2 |
Om punktfunktionen är ett kluster återges egenskapen point_count_abbreviated som en textetikett. Ingen bild återges.
Egenskaper för linjeformat
Om funktionen är en LineString, MultiLineString, Polygoneller MultiPolygon, återges den med en LineLayer.
| Lageralternativ | Egenskapsnamn som stöds | Standardvärde |
|---|---|---|
strokeColor |
strokeColor, stroke |
'#1E90FF' |
strokeWidth |
strokeWidth, , stroke-widthstroke-thickness |
3 |
strokeOpacity |
strokeOpacity, stroke-opacity |
1 |
Egenskaper för polygonformat
Om funktionen är en Polygon eller en MultiPolygon, och inte har en höjdegenskap, eller om egenskapen height är noll, återges den med en PolygonLayer.
| Lageralternativ | Egenskapsnamn som stöds | Standardvärde |
|---|---|---|
fillColor |
fillColor, fill |
'#1E90FF' |
fillOpacity |
fillOpacity, 'fill-opacity |
0.5 |
Egenskaper för extruderat polygonformat
Om funktionen är en Polygon eller en MultiPolygon, och har en höjdegenskap med ett värde som är större än noll återges den med en PolygonExtrusionLayer.
| Lageralternativ | Egenskapsnamn som stöds | Standardvärde |
|---|---|---|
base |
base |
0 |
fillColor |
fillColor, fill |
'#1E90FF' |
height |
height |
0 |
Relaterat innehåll
Läs mer om klasserna och metoderna i den här artikeln:
Se följande artiklar för att få fler kodexempel att lägga till i dina kartor: