Lo que estoy buscando es una forma de enfatizar un área determinada en un mapa de Google Maps atenuando el resto del mundo.
Escuché sobre alguna solución de usar 2 polígonos, uno de los cuales es visible y el otro no, y que solo funciona si el mapa es estático (sin movimiento del mapa). Sin embargo, quiero que el usuario pueda hacer zoom y arrastrar el mapa.
También estoy interesado en otras formas en las que no he pensado enfatizar un área.
actualizar:
Cuando pruebo la solución publicada por radek (es decir, creando un KML con un Polígono con un OutsideBoundaryIs (más grande que la vista) y un innerBoundaryIs (siendo un área para enfatizar)) Tengo el problema de que cuando hago zoom, las áreas rectangulares no están cubiertas por el polígono circundante más. Ver:
¿Alguien con experiencia / solución a eso?
actualización2:
Finalmente tuve tiempo de probar la solución de radek usando Google Fusion Tables. Al principio tuve los mismos problemas con los mosaicos faltantes que con KML (vea la imagen de arriba), pero después de otra carga parece que se había recuperado y mostraba los mosaicos totalmente correctos. Tengo la sensación de que el truco de jquery en su solución fue para azulejos que no se estaban cargando:
setTimeout(function(){
$("img[src*='googleapis']").each(function() {
$(this).attr("src",$(this).attr("src")+"&"+(new Date()).getTime());
});
}, 5000);
Como las baldosas parecían cargarse después de una actualización, no he usado el truco yo mismo. Si el error ocurre para cada nuevo usuario, experimentaré con él.
si la herramienta que publicó @radek no lo ayudó, hay otra que está usando las características simples de google.maps.Polygon: http://maps.vasile.ch/geomask/
Básicamente sigue el algoritmo de número de bobinado: el polígono de máscara (universo) se digitaliza en sentido horario y todos los polígonos interiores se digitalizan en sentido antihorario http://en.wikipedia.org/wiki/Winding_number
fuente