Как добавить пользовательские изображения маркеров в Карты Google с помощью API Карт GWT? - PullRequest
6 голосов
/ 30 января 2010

Я работаю над приложением 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);

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

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

Спасибо!

Ответы [ 3 ]

10 голосов
/ 30 января 2010

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

2 голосов
/ 30 января 2010

Вот мое новое рабочее решение (еще раз, игро):

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);
0 голосов
/ 27 мая 2015

Вот мой код в версии 3.10

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...