es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , , ,

Answer

  1. Avatar for 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 propiedad coordinates de una característica Punto para acceder a su ubicación y crear un objeto LngLat a partir de ella. Por ejemplo:

    var pointFeature = ... // una característica GeoJSON de tipo Punto
    var lngLatCoords = new mapboxgl.LngLat(pointFeature.geometry.coordinates);
    console.log(lngLatCoords.lng); // registra el valor de longitud
    console.log(lngLatCoords.lat); // registra el valor de latitud
    

    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 constructor LngLat sin especificar el segundo parámetro, que por defecto es el orden latitud / longitud.

Comments are closed.