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.

AmCharts4: método getPolygonById para mapa personalizado a partir de GeoJSON

Estoy intentando usar el método getPolygonById con una serie de polígonos de mapa creada utilizando datos GeoJSON personalizados (esto es para hacer zoom a un polígono con un ID específico). He seguido las instrucciones proporcionadas en creando mapas personalizados.

La serie de polígonos de mapa con los datos GeoJSON personalizados se renderiza y las funciones de eventos funcionan correctamente (por ejemplo, hacer zoom a un polígono o cambiar de color al hacer clic en “hit”).

Sin embargo, al llamar a customSeries.getPolygonById(“ExampleID”), el método devuelve “undefined”. Tenga en cuenta que la fuente GeoJSON para customSeries incluye el campo de identificación correspondiente (es decir, “id”: “ExampleID”).

Es decir, a pesar de renderizar correctamente, el siguiente código devuelve “undefined”:

var customSeries = map.series.push(new am4maps.MapPolygonSeries());
customSeries.geodataSource.url = "/geojson/customSeries.geojson";
customSeries.useGeodata = true;
console.log(customSeries.getPolygonById("ExampleID"));

Esto contrasta con el retorno del objeto JSON con el Polígono de Mapa especificado al usar una plantilla de mapa Amcharts. Por ejemplo, el siguiente código devuelve un objeto correspondiente al Polígono de Mapa con el ID “US”:

var worldLow = map.series.push(new am4maps.MapPolygonSeries();
worldLow.useGeodata = true;
worldLow.geodata = am4geodata_worldLow; 
console.log(worldLow.getPolygonById("US"));

¿Es este un problema con mis datos? ¿O se requiere algo adicional para llamar a getPolygonById en una Serie de Polígonos de Mapa a partir de un GeoJSON personalizado?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que haya un problema con los datos o el formato de la fuente personalizada de GeoJSON. Es importante asegurarse de que el campo “id” esté especificado exactamente como “id”: “ExampleID” en la fuente de GeoJSON. Además, asegúrese de que el valor pasado al método getPolygonById coincida con el valor exacto de “id” especificado en la fuente de GeoJSON.

    Si los datos de GeoJSON y los valores de ID son correctos, puede ser necesario asignar manualmente IDs a cada polígono utilizando el valor de índice de los datos.

    También es importante tener en cuenta que el método getPolygonById puede no funcionar correctamente con polígonos altamente complejos o que se superponen, o con polígonos divididos en múltiples subpolígonos. En estos casos, pueden ser necesarios métodos alternativos para seleccionar y ampliar características específicas del mapa.

Comments are closed.