¿Cómo acceder a las coordenadas de geometría con expresiones de Mapbox?
De vez en cuando me encuentro con un código como este:
var mapboxDrawStylesCustom = [
{
'id': 'custom-point-inactive',
'type': 'circle',
'filter': ['all',
['==', 'active', 'false'],
['==', '$type', 'Point'],
['==', 'meta', 'feature'],
['!=', 'mode', 'static']
],
'paint': paintPropertyPoint
}
]
Me pregunto acerca del accessor '$type'
aquí. Obviamente permite obtener el tipo de geometría. Pero no lo he visto mencionado en ningún lugar de la documentación. Personalmente necesito acceder a la latitud/longitud de la geometría Point. Según la documentación, no es algo que Mapbox admita. ¿Sin embargo, es posible tal vez usar esta especie de sintaxis con signo de dólar?
davy.ai
El acceso
$type
en el fragmento de código dado se utiliza para filtrar las características que son de tipo Punto. Esta es una expresión válida en Mapbox GL JS que se utiliza para acceder al tipo de la geometría.En cuanto al acceso a la latitud/longitud de la geometría Punto, Mapbox GL JS proporciona un objeto
LngLat
para representar valores de longitud / latitud. Puede utilizar la propiedadcoordinates
de una característica Punto para acceder a su ubicación y crear un objetoLngLat
a partir de ella. Por ejemplo:Es importante tener en cuenta que la propiedad
coordinates
es una matriz en la forma[longitud, latitud]
, por lo que la pasamos como argumento al constructorLngLat
sin especificar el segundo parámetro, que por defecto es el orden latitud / longitud.