2010-01-30 8 views
6

Estoy trabajando en una aplicación GWT que utiliza Google Maps. Estoy tratando de agregar muchos marcadores con letras a mi mapa. Originalmente, tuve:¿Cómo agrego imágenes de marcador personalizadas a Google Maps usando la API GWT Maps?

Marker marker = new Marker(point); 
marker.setImage("http://www.google.com/mapfiles/markerA.png"); 
map.addOverlay(marker); 

Pero eso no funcionó. La llamada a setImage provocó una excepción en la API de mapas y no apareció nada en el mapa. Busqué y encontré algunas respuestas a medias hablando de MarkerOptions, así que he intentado:

Icon icon = Icon.newInstance(Icon.DEFAULT_ICON); 
icon.setImageURL("http://www.google.com/mapfiles/markerA.png"); 
MarkerOptions ops = MarkerOptions.newInstance(icon); 
ops.setIcon(icon); 
Marker marker = new Marker(point, ops); 
map.addOverlay(marker); 

Esto fue un poco mejor en la que mi aplicación no estaba lanzando excepciones más y que estaba viendo sombras marcador, pero todavía no hay imágenes de marcadores personalizados .

Preferiría una solución que no sea JSNI a este problema.

Gracias!

Respuesta

10

Este ejemplo parece abarcar lo que desea lograr: IconDemo.java.

// Create our "tiny" marker icon 
Icon icon = Icon.newInstance(
    "http://labs.google.com/ridefinder/images/mm_20_red.png"); 
icon.setShadowURL("http://labs.google.com/ridefinder/images/mm_20_shadow.png"); 
icon.setIconSize(Size.newInstance(12, 20)); 
icon.setShadowSize(Size.newInstance(22, 20)); 
icon.setIconAnchor(Point.newInstance(6, 20)); 
icon.setInfoWindowAnchor(Point.newInstance(5, 1)); 

MarkerOptions options = MarkerOptions.newInstance(); 
options.setIcon(icon); 

// LatLng point; MapWidget map; 
map.addOverlay(new Marker(point, options)); 

La demostración en vivo se puede ver aquí: http://gwt.google.com/samples/HelloMaps-1.0.4/HelloMaps.html#Creating%20Icons

+0

Muchas gracias por la respuesta súper rápida. Eso funciono. –

2

aquí a mi nueva solución de trabajo (gracias de nuevo IGRO):

Icon icon = Icon.newInstance("http://www.google.com/mapfiles/markerA.png"); 
icon.setIconSize(Size.newInstance(20, 34)); 
MarkerOptions ops = MarkerOptions.newInstance(icon); 
Marker marker = new Marker(point, ops); 
map.addOverlay(marker); 
-1

Aquí está mi código en 3.10 Versión

LatLng centerIcon = LatLng.newInstance(-25.90307367246304, -48.82550597190857); 
MarkerImage markerImage = MarkerImage.newInstance("http://someIcon.png"); 
MarkerOptions mOpts = MarkerOptions.newInstance(); 
mOpts.setIcon(markerImage); 
mOpts.setPosition(centerIcon); 

Marker marker = Marker.newInstance(mOpts); 
marker.setMap(mapWidget); 
+0

¿Podría agregar algo de texto a su respuesta explicando si esto resuelve total o parcialmente la pregunta de OP? Como tal, no está claro para mí. – kebs

Cuestiones relacionadas