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 agrupas las anotaciones con la versión 10 del MapBox iOS SDK?

¿Cómo se realiza el agrupamiento con la versión 10 del SDK de Mapbox para iOS? ¿Y puedo usar ViewAnnotations para mostrar vistas personalizadas para los grupos?

En resumen, estoy intentando agrupar anotaciones en un MapView de Mapbox y mostrar una UIView personalizada en cada grupo. Algo como el ejemplo mostrado aquí en la documentación de Mapbox para v6.x.

Después de revisar las guías del SDK para iOS y la documentación, no está claro cómo hacer esto. Incluso hay una sección llamada “Migrar a v10”, que parece cubrir todas las diferencias entre v6.x y v10, excepto cómo agrupar datos. Antes de la versión 10 de Mapbox (con v6.x), parece que se utilizaría MGLPointFeatureCluster, pero no puedo encontrar nada que hable sobre el agrupamiento con v10.

¡Gracias de antemano!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La agregación en la versión 10 del SDK de Mapbox para iOS se realiza utilizando el objeto MGLShapeSource junto con el objeto MGLSymbolStyleLayer. Aquí están los pasos generales para lograr la agregación:

    1. Crea una instancia de MGLShapeSource y establece su propiedad url en una URL que devuelva datos GeoJSON que contengan características de puntos.
    2. Crea una instancia de MGLSymbolStyleLayer y establece su propiedad sourceIdentifier en el identificador de la instancia de MGLShapeSource que acabas de crear.
    3. Establece la propiedad iconImageName de la instancia de MGLSymbolStyleLayer con el nombre de la imagen que deseas utilizar para tus marcadores de agregación.
    4. Establece la propiedad iconAllowsOverlap de la instancia de MGLSymbolStyleLayer en true.
    5. Agrega la instancia de MGLShapeSource y la instancia de MGLSymbolStyleLayer a tu vista de mapa.
    6. Al crear tus características de punto, agrega una propiedad cluster a cada característica y establece su valor en true si la característica debe agregarse. También puedes agregar otras propiedades a cada característica para usar en tu vista personalizada.
    7. Luego puedes utilizar los métodos del delegado MGLMapViewDelegate para personalizar la apariencia de tu vista personalizada en función de las características agregadas.

    En cuanto al uso de vistas personalizadas para tus agregaciones, puedes utilizar el objeto MGLAnnotationImage para crear una imagen personalizada para tu marcador de agregación y establecerla como propiedad iconImage de la instancia de MGLSymbolStyleLayer. Sin embargo, no es posible mostrar vistas personalizadas para agregaciones utilizando MGLAnnotationView, ya que esa clase se utiliza solo para anotaciones individuales.

Comments are closed.