He intentado diseñar mi Google Maps InfoWindow
, pero la documentación es muy limitada sobre este tema. ¿Cómo peinas un InfoWindow
?
fuente
He intentado diseñar mi Google Maps InfoWindow
, pero la documentación es muy limitada sobre este tema. ¿Cómo peinas un InfoWindow
?
Google escribió un código para ayudar con esto. Aquí hay algunos ejemplos: Ejemplo usando InfoBubble , Marcadores con estilo y Ventana de información personalizada (usando OverlayView).
El código en los enlaces anteriores toma diferentes rutas para lograr resultados similares. La esencia de esto es que no es fácil diseñar InfoWindows directamente, y podría ser más fácil usar la clase InfoBubble adicional en lugar de InfoWindow, o anular GOverlay. Otra opción sería modificar los elementos de la InfoWindow usando javascript (o jQuery), como sugirió posteriormente ATOzTOA.
Posiblemente, el más simple de estos ejemplos es utilizar InfoBubble en lugar de InfoWindow. InfoBubble está disponible importando este archivo (que debe alojar usted mismo):http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/src/infobubble.js
Página del proyecto Github de InfoBubble .
InfoBubble tiene mucho estilo, en comparación con InfoWindow:
infoBubble = new InfoBubble({
map: map,
content: '<div class="mylabel">The label</div>',
position: new google.maps.LatLng(-32.0, 149.0),
shadowStyle: 1,
padding: 0,
backgroundColor: 'rgb(57,57,57)',
borderRadius: 5,
arrowSize: 10,
borderWidth: 1,
borderColor: '#2c2c2c',
disableAutoPan: true,
hideCloseButton: true,
arrowPosition: 30,
backgroundClassName: 'transparent',
arrowStyle: 2
});
infoBubble.open();
También puede llamarlo con un mapa y un marcador determinados para abrir en:
infoBubble.open(map, marker);
Como otro ejemplo, el ejemplo de la ventana de información personalizada extiende la clase GOverlay de la API de Google Maps y lo usa como base para crear una ventana de información más flexible. Primero crea la clase:
/* An InfoBox is like an info window, but it displays
* under the marker, opens quicker, and has flexible styling.
* @param {GLatLng} latlng Point to place bar at
* @param {Map} map The map on which to display this InfoBox.
* @param {Object} opts Passes configuration options - content,
* offsetVertical, offsetHorizontal, className, height, width
*/
function InfoBox(opts) {
google.maps.OverlayView.call(this);
this.latlng_ = opts.latlng;
this.map_ = opts.map;
this.offsetVertical_ = -195;
this.offsetHorizontal_ = 0;
this.height_ = 165;
this.width_ = 266;
var me = this;
this.boundsChangedListener_ =
google.maps.event.addListener(this.map_, "bounds_changed", function() {
return me.panMap.apply(me);
});
// Once the properties of this OverlayView are initialized, set its map so
// that we can display it. This will trigger calls to panes_changed and
// draw.
this.setMap(this.map_);
}
después de lo cual procede a anular GOverlay:
InfoBox.prototype = new google.maps.OverlayView();
A continuación, debe invalidar los métodos que necesita: createElement
, draw
, remove
y panMap
. Se complica bastante, pero en teoría ahora solo está dibujando un div en el mapa, en lugar de usar una ventana de información normal.
Puede modificar toda la ventana de información utilizando jquery solo ...
Aquí, el elemento <p> actuará como un enlace a la ventana de información real. Una vez que el domready se activa, el elemento se activará y se podrá acceder a él usando javascript / jquery, como
$('#hook').parent().parent().parent().parent()
.El siguiente código solo establece un borde de 2 píxeles alrededor de la ventana de información.
Puede hacer cualquier cosa como configurar una nueva clase de CSS o simplemente agregar un nuevo elemento.
Juega con los elementos para conseguir lo que necesitas ...
fuente
// CSS puesto en hoja de estilo
fuente
Usé el siguiente código para aplicar CSS externo:
fuente
Utilice el InfoBox complemento de la biblioteca de utilidades de Google Maps. Facilita mucho el diseño y la gestión de las ventanas emergentes de mapas.
Tenga en cuenta que deberá asegurarse de que se cargue después de la API de Google Maps:
fuente
He diseñado la ventana de información del mapa de Google con imagen y contenido como se muestra a continuación.
fuente
También podrías usar una clase css.
¡Buen día!
fuente