Как я добавляю пользовательские изображения маркера к Google Maps с помощью Карт GWT API?

Я работаю над приложением GWT, это использует Google Maps. Я пытаюсь добавить много начитанных маркеров к своей карте. Первоначально, я имел:

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

Но это не работало. Вызов к setImage вызвал исключение в картах API, и ничто не обнаружилось на карте. Я искал и нашел некоторые полуответы, говорящие о MarkerOptions, таким образом, я попробовал:

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);

Это было немного лучше в том моем приложении, не выдавал исключения больше, и я видел тени маркера, но все еще никакие пользовательские изображения маркера.

Я предпочел бы non-JSNI решение этой проблемы.

Спасибо!

6
задан Eric Landry 30 January 2010 в 11:59
поделиться

2 ответа

Этот образец, кажется, покрывает то, чего вы хотите достичь: 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));

Живая демо-версия видна здесь: http://gwt.google.com/samples/HelloMaps-1.0.4/HelloMaps.html#Creating%20Icons

10
ответ дан 9 December 2019 в 22:34
поделиться

вот мое новое рабочее решение (THX SORN 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);
2
ответ дан 9 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: