style open multiple infowindows google example automatically google-maps

google maps - open - ¿Puedo mostrar un solo país(enmascarado) en GoogleMaps?



infowindow google maps android (3)

¿Has considerado cargar en un mapa personalizado?

No lo he usado, pero espero que ese enlace pueda ayudarte un poco :)

¿Es posible enmascarar a los países vecinos en GoogleMap? En mi caso, solo quiero mostrar Suecia en una vista. En una segunda vista sólo Noruega, Dinamarca, etc, etc ...

Sé que es posible dibujar líneas de polígonos y rellenarlas en consecuencia en la API de Maps. El problema es que o los conjuntos de resultados se vuelven enormes o las líneas se vuelven muy ásperas, etc. ... Sería bueno si GoogleMaps pudiera entregar un país en ese momento sin vecinos.

¿Alguien sabe acerca de una buena base de datos de coordenadas con las fronteras del país?


Puede crear polígonos muy complejos en Mapas sin disminuir el rendimiento si los almacena en formato de archivo KML y los carga como KmlLayers . KML es un formato de archivo vectorial basado en XML para datos geográficos. La belleza de usar archivos KML en Google Maps es que se procesan en servidores de Google en simples archivos PNG, que coinciden con la resolución actual y el cuadro delimitador de su vista de Mapas en cualquier momento, sin importar cuán complejos sean los datos del polígono original. Así que toda la complejidad se maneja del lado del servidor en Google.

Aquí hay una muestra de un proyecto , donde he usado ese enmascaramiento para uno de los estados federales de Alemania. (En este caso, los alrededores no están completamente enmascarados, sino que se atenúan. Pero también se pueden enmascarar fácilmente cambiando el valor alfa del color de relleno en el archivo KML).

Para una revisión rápida, los archivos KML también se pueden cargar directamente en el sitio web público de Google Maps (ingresando su URL en el campo de búsqueda). Aquí está el archivo KML que he usado en el proyecto anterior, cargado directamente en Google Maps . (En realidad, he usado un archivo KMZ aquí, pero es simplemente un archivo KML empaquetado en un archivo ZIP. Puede empaquetarlo y descomprimirlo con las herramientas ZIP normales).
COMIENZO DE LA ACTUALIZACIÓN 07/2015: Desafortunadamente, Google eliminó la posibilidad de ingresar directamente la URL de un archivo KML / KMZ en el campo de búsqueda de su Google Maps público cuando lanzaron su versión rediseñada en 2014. Aún puede usar todas las técnicas que se describen en este responda, pero no puede simplemente obtener una vista previa de los archivos KML ingresando su URL en el campo de búsqueda. Si necesita el KMZ mencionado anteriormente para un análisis más detallado, puede descargarlo aquí . ACTUALIZACIÓN FINAL

Tenga en cuenta que Google implica un límite de tamaño para los archivos KML / KMZ (actualmente 10 Mb sin comprimir, 3 Mb comprimidos; consulte los detalles aquí ). Si sus archivos KML deberían ser demasiado grandes, hay software disponible para reducir la complejidad (vea los ejemplos here y here ).

Encontrará datos de mapas gratuitos en muchos lugares de Internet, la mayoría de ellos en formato ESRI shapefile. Una gran fuente de mapas de países es http://www.gadm.org/ con la gran ventaja de proporcionar sus datos en formato KML / KMZ también. Si debe convertir archivos de forma ESRI a KML, eche un vistazo al gran (y gratuito) convertidor OGR .

Tenga en cuenta que los archivos KML son solo una solución si sus polígonos son estáticos (como lo es el borde de Suecia) y no dependen de ninguna entrada del usuario. Para los polígonos dinámicos, todavía tendrá que usar la clase Polígono de la API de Maps con las restricciones de complejidad que ha mencionado.


tuvo un problema similar y lo manejó combinando gamps con tablas de fusión:

var table_id = 420419; //can be exchanged wit another table var FT_Query = "SELECT ''kml_4326'' FROM "+ table_id +" WHERE ''name_0'' NOT EQUAL TO ''SWEDEN''"; var FT_Options = { suppressInfoWindows: true, query: FT_Query }; var layer = new google.maps.FusionTablesLayer(table_id, FT_Options); layer.setMap(map);