|
From: Hans T. M. <han...@ho...> - 2010-05-19 14:50:02
|
Hi.
I'm having some difficulties with displaying markers when using the OSM
class as the base layer.
When using a WMS layer it displays correctly, but when I change to OSM
it don't get the coordinates
and are then displayed at the center of the map. Can someone explain this?
*Sample code from my project:*
public class Tutorial1 implements EntryPoint {
private MapOptions mapOptions;
private MapWidget mapWidget;
private Map map;
private OSM osmLayer;
private Markers markers;
private Marker marker;
private LonLat center;
private LonLat markerPosition;
private Size size;
private Icon icon;
private DockPanel dockPanel;
public void onModuleLoad() {
mapOptions = new MapOptions();
mapOptions.setControls(new JObjectArray(new JSObject[] {}));
mapOptions.setProjection("EPSG:900913");
mapOptions.setDisplayProjection(new Projection("EPSG:4326"));
mapOptions.setMaxExtent(new
Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34));
mapOptions.setNumZoomLevels(19);
mapOptions.setUnits("m");
mapWidget = new MapWidget("1000px", "500px", mapOptions);
map = mapWidget.getMap();
map.addControl(new PanZoomBar());
map.addControl(new MousePosition());
map.addControl(new MouseToolbar());
map.addControl(new LayerSwitcher());
center = new LonLat(0, 0);
map.setCenter(center, 3);
osmLayer = OSM.Mapnik("OpenStreetMap");
markers = new Markers("marker layer");
map.addLayers(new Layer[] {osmLayer, markers});
markerPosition = new LonLat(-73.99112, 40.77060);
size = new Size(10,17);
icon = new Icon("img/marker.png", size);
marker = new Marker(markerPosition, icon);
markers.addMarker(marker);
dockPanel = new DockPanel();
dockPanel.add(mapWidget, DockPanel.CENTER);
dockPanel.setBorderWidth(1);
RootPanel.get("map").add(dockPanel);
}
}
Cheers,
Hans
|