Adición de una capa de datos simple
El SDK web de Azure Maps proporciona un módulo de E/S espacial que incluye una clase SimpleDataLayer
. Esta clase facilita la representación de características con estilo en el mapa. Incluso puede representar conjuntos de datos que tengan propiedades de estilo y conjuntos de datos que contengan tipos de geometría mixtos.
La capa de datos simple consigue esta funcionalidad mediante el encapsulado de varias capas de representación y el uso de expresiones de estilo. Las expresiones de estilo buscan capas ajustadas para propiedades de estilo comunes. Las funciones atlas.io.read
y atlas.io.write
usan estas propiedades para leer y escribir estilos en un formato de archivo compatible. Al agregar propiedades a un formato de archivo compatible, puede usar el archivo con fines como mostrar características con estilo en un mapa.
La clase SimpleDataLayer
también proporciona una característica emergente integrada con una plantilla emergente. El elemento emergente aparece cuando se selecciona una característica. Esta capa también admite datos en clúster. Al hacer seleccionar un clúster, el mapa se amplía en el clúster y lo expande en puntos individuales y subclústeres. Puede deshabilitar la característica emergente si no la necesita.
La clase SimpleDataLayer
está pensada para usarse en grandes conjuntos de datos que incluyen características con muchos tipos y estilos de geometría aplicados. Cuando se usa esta clase, se agrega una sobrecarga de seis capas que contienen expresiones de estilo. Si solo necesita representar algunos tipos y estilos de geometría en una característica, puede ser más eficaz usar una capa de representación principal. Para obtener más información, vea Agregar una capa de burbujas al mapa, Agregar una capa de línea al mapa y Agregar una capa de polígono al mapa.
Uso de una capa de datos simple
Puede usar la clase SimpleDataLayer
como las otras capas de representación. El código siguiente muestra cómo usar una capa de datos simple en un mapa:
//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);
El siguiente fragmento de código muestra cómo usar una capa de datos sencilla que hace referencia a datos de un origen en línea:
<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>
Al agregar características al origen de datos, la capa de datos simple las representa de la manera más adecuada. Puede establecer estilos como propiedades para cada característica individual.
El código de ejemplo anterior muestra una característica de punto de notación de objetos de JavaScript geográfico (GeoJSON) con una propiedad color
establecida en red
.
El código de ejemplo representa la característica de punto mediante la capa de datos simple y el resultado aparece como se indica a continuación.
Nota:
El valor del origen de datos "coordinates": [0, 0]
invalida las coordenadas center: [-73.967605, 40.780452]
que estableció cuando se inicializó el mapa.
La capa de datos simple es una herramienta eficaz en los escenarios siguientes:
- Un origen de datos incluye varios tipos de características.
- Las características del conjunto de datos tienen varias propiedades de estilo que se establecen individualmente.
- No está seguro de lo que contiene el conjunto de datos.
Por ejemplo, al analizar fuentes de distribución de datos XML, es posible que no conozca el estilo de las características y los tipos de geometría. En el ejemplo Opciones de capa de datos simple, se muestra cómo la capa de datos simple representa las características de un archivo de lenguaje de marcado de Keyhole (KML). También puede ver las opciones en la clase SimpleDataLayer
. Para obtener el código fuente de este ejemplo, consulte options.html de capa de datos simple en los ejemplos de código de Azure Maps en GitHub.
Nota:
Este nivel de datos simple usa la clase plantilla emergente para mostrar globos de KML o propiedades de características en forma de tabla. De forma predeterminada, todo el contenido representado en el elemento emergente se encuentra en un espacio aislado dentro de un iFrame como una característica de seguridad. Sin embargo, existen limitaciones:
- Todas las funciones de bloqueo de puntero, la funcionalidad de navegación superior, los scripts y los formularios están deshabilitados. Los vínculos se pueden abrir en una nueva pestaña cuando se seleccionan.
- Los exploradores más antiguos que no admiten el parámetro
srcdoc
en iFrames solo pueden representar una pequeña cantidad de contenido.
Si confía en los datos cargados en los elementos emergentes y quiere que los scripts emergentes puedan acceder a la aplicación, puede deshabilitar esta característica. Solo tiene que establecer la opción sandboxContent
de la plantilla emergente en false
.
Propiedades de estilo predeterminadas admitidas
La capa de datos simple encapsula varias de las capas de representación básicas: burbuja, símbolo, línea, polígono y polígono extruido. Utiliza expresiones para buscar propiedades de estilo válidas en características individuales.
Los dos conjuntos principales de nombres de propiedad admitidos son Azure Maps y GitHub. La mayoría de los nombres de propiedad de las opciones de capa de Azure Maps se admiten en la capa de datos simple como propiedades de estilo de las características. Algunas opciones de capa incluyen expresiones que admiten nombres de propiedad de estilo que GitHub usa normalmente.
Estos nombres de propiedades se definen en Compatibilidad de mapas GeoJSON de GitHub y se usan para aplicar estilo a los archivos GeoJSON que se almacenan y representan en la plataforma. Se admiten la mayoría de las propiedades de estilo de GitHub en la capa de datos simple, excepto en las propiedades de estilo marker-symbol
.
Si el lector se encuentra con una propiedad de estilo menos habitual, la convertirá en la propiedad de estilo de Azure Maps más parecida. Además, las expresiones de estilo predeterminadas se pueden invalidar mediante el uso de la función getLayers
de la capa de datos simple y la actualización de las opciones de cualquiera de las capas.
En las siguientes secciones se proporcionan detalles sobre las propiedades de estilo predeterminadas que admite la capa de datos simple. El orden de los nombres de propiedad admitidos también es la prioridad. Si se definen dos propiedades de estilo para la misma opción de capa, la primera de la lista tendrá mayor precedencia. Los colores pueden ser cualquier valor de color CSS3 (HEX, RGB, RGBA, HSL, HSLA) o el valor de color con nombre.
Propiedades de estilo de la capa de burbujas
Si una característica es un Point
o un MultiPoint
, y no tiene una propiedad de imagen para usarla como un icono personalizado para representar el punto como un símbolo, se representa con un BubbleLayer
.
Opción de capa | Nombres de propiedades admitidos | Valor predeterminado |
---|---|---|
color |
color , marker-color |
'#1A73AA' |
radius |
size
1, marker-size 2, scale 1 |
8 |
strokeColor |
strokeColor , stroke |
'#FFFFFF' |
1 Los valores de tamaño y escala se consideran valores escalares y se multiplican por 8.
2 Si se especifica la opción marker-size
de GitHub, el radio usa los siguientes valores:
Tamaño de marcador | Radio |
---|---|
small |
6 |
medium |
8 |
large |
12 |
Los clústeres también se representan en la capa de burbujas. De forma predeterminada, el radio de un clúster se establece en 16. El color del clúster varía en función del número de puntos del clúster, como se define a continuación:
Número de puntos | Color |
---|---|
>= 100 | red |
>= 10 | yellow |
< 10 | green |
Propiedades de estilo de símbolo
Si una característica es un Point
o MultiPoint
, con una propiedad de imagen usada como icono personalizado para representar el punto como un símbolo, se representa con un SymbolLayer
.
Opción de capa | Nombres de propiedades admitidos | Valor predeterminado |
---|---|---|
image |
image |
none |
size |
size , marker-size 1 |
1 |
rotation |
rotation |
0 |
offset |
offset |
[0, 0] |
anchor |
anchor |
'bottom' |
1 Si se especifica la opción marker-size
de GitHub, se usan los siguientes valores para la opción de tamaño del icono:
Tamaño de marcador | Tamaño del símbolo |
---|---|
small |
0.5 |
medium |
1 |
large |
2 |
Si la característica de punto es un clúster, la propiedad point_count_abbreviated
se representará como una etiqueta de texto. No se representa ninguna imagen.
Propiedades de estilo de línea
Si la característica es un LineString
, MultiLineString
, Polygon
o MultiPolygon
, se representa con un LineLayer
.
Opción de capa | Nombres de propiedades admitidos | Valor predeterminado |
---|---|---|
strokeColor |
strokeColor , stroke |
'#1E90FF' |
strokeWidth |
strokeWidth , stroke-width , stroke-thickness |
3 |
strokeOpacity |
strokeOpacity , stroke-opacity |
1 |
Propiedades de estilo de polígono
Si la característica es un Polygon
o un MultiPolygon
, y no tiene una propiedad height, o si la propiedad height es cero, se representa con un PolygonLayer
.
Opción de capa | Nombres de propiedades admitidos | Valor predeterminado |
---|---|---|
fillColor |
fillColor , fill |
'#1E90FF' |
fillOpacity |
fillOpacity , fill-opacity |
0.5 |
Propiedades de estilo de polígono extruido
Si la característica es un Polygon
o un MultiPolygon
, y tiene una propiedad height con un valor mayor que cero, se representa con un PolygonExtrusionLayer
.
Opción de capa | Nombres de propiedades admitidos | Valor predeterminado |
---|---|---|
base |
base |
0 |
fillColor |
fillColor , fill |
'#1E90FF' |
height |
height |
0 |
Contenido relacionado
Más información sobre las clases y los métodos de este artículo:
Consulte los siguientes artículos para obtener más ejemplos de código para agregarlos a los mapas: