Gwt-openlayers с примером openstreetmap
Я хотел бы интегрировать OSM в GWT.
Я нашел эту библиотеку под названием gwt-openlayers, но я не понимаю, как я могу заставить ее работать с картой OSM.
Может ли кто-нибудь предоставить мне короткий пример?
Ответы
Ответ 1
Убедитесь, что вы наследуете от gwt-openlayers, добавив в файл модуля следующее:
<inherits name='org.gwtopenmaps.openlayers.OpenLayers'/>
Также убедитесь, что вы ввели в JavaScript свою библиотеку JavaScript OpenLayers и OpenStreetMap OpenLayers, добавив следующие строки на странице "Application.html":
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
Тогда для создания слоя, использующего открытые уличные карты, должно быть просто:
OSM openStreetMap = OSM.Osmarender("Base Map");
openStreetMap.setIsBaseLayer(true);
MapWidget mapWidget = new MapWidget("350px", "350px");
mapWidget.getMap().addLayer(openStreetMap);
Ответ 2
GWT-OpenLayers HelloWorld
с OpenStreetMap
Следующий пример отлично подходит для меня, используя OpenLayers-2.8/OpenLayers.js
и OpenStreetMap.js
, как описано выше:
public void onModuleLoad() {
MapOptions defaultMapOptions = new MapOptions();
MapWidget mapWidget = new MapWidget("800px", "600px", defaultMapOptions);
OSM osm_1 = OSM.Osmarender("Osmarender"); // Label for menu 'LayerSwitcher'
osm_1.setIsBaseLayer(true);
OSM osm_2 = OSM.Mapnik("Mapnik"); // Label for menu 'LayerSwitcher'
osm_2.setIsBaseLayer(true);
OSM osm_3 = OSM.CycleMap("CycleMap");
osm_3.setIsBaseLayer(true);
OSM osm_4 = OSM.Maplint("Maplint");
osm_4.setIsBaseLayer(true);
Map map = mapWidget.getMap();
map.addLayer(osm_1);
map.addLayer(osm_2);
map.addLayer(osm_3);
map.addLayer(osm_4);
map.addControl(new LayerSwitcher());
map.addControl(new MousePosition());
// map.setCenter(new LonLat(6.95, 50.94), 12); // Warning: In the case of OSM-Layers the method 'setCenter()' uses Gauss-Krueger coordinates,
// thus we have to transform normal latitude/longitude values into this projection first:
LonLat lonLat = new LonLat(6.95, 50.94); // (6.95, 50.94) --> (773670.4, 6610687.2)
lonLat.transform("EPSG:4326", "EPSG:900913"); //
map.setCenter(lonLat, 12); // see http://docs.openlayers.org/library/spherical_mercator.html
RootPanel.get().add(mapWidget); }
Ответ 3
вы найдете текущую версию gwt-openlayers здесь: http://sourceforge.net/projects/gwt-openlayers/