我正在使用一个使用谷歌地图的GWT应用程序.我正在尝试向地图添加许多字母标记.最初,我有:
Marker marker = new Marker(point);
marker.setImage("http://www.google.com/mapfiles/markerA.png");
map.addOverlay(marker);
Run Code Online (Sandbox Code Playgroud)
但那没用.对setImage的调用在maps 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);
Run Code Online (Sandbox Code Playgroud)
这是一个更好的,因为我的应用程序不再抛出异常,我看到标记阴影,但仍然没有自定义标记图像.
我更喜欢这个问题的非JSNI解决方案.
谢谢!
Igo*_*mer 10
此示例似乎涵盖了您想要实现的目标: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));
Run Code Online (Sandbox Code Playgroud)
现场演示可以在这里看到:http://gwt.google.com/samples/HelloMaps-1.0.4/HelloMaps.html#Creating%20Icons