The OpenStreetMap layer allows you to display OpenStreetMap imagery as raster layer in Geomajas.
Make sure your include the plug-in in your project. If you are using Maven, add the following dependency to your pom:
<dependency> <groupId>org.geomajas.plugin</groupId> <artifactId>geomajas-layer-openstreetmap</artifactId> <version>1.7.1</version </dependency>
Example 2.1. OpenStreetMap layer dependency
A complete OpenStreetMap layer configuration looks as follows:
<bean name="osmInfo" class="org.geomajas.configuration.RasterLayerInfo">
<property name="crs" value="EPSG:900913"/>
<property name="maxExtent">
<bean class="org.geomajas.geometry.Bbox">
<property name="x" value="-20026376.393709917"/>
<property name="y" value="-20026376.393709917"/>
<property name="width" value="40052752.787419834"/>
<property name="height" value="40052752.787419834"/>
</bean>
</property>
<!--property name="resolutions">
<list>
<value>156543.03</value>
<value>78271.52</value>
<value>39135.76</value>
<value>19567.88</value>
<value>9783.94</value>
<value>4891.97</value>
<value>2445.98</value>
<value>1222.99</value>
<value>611.49</value>
<value>305.75</value>
<value>152.874057</value>
<value>76.4370283</value>
<value>38.2185141</value>
<value>19.1092571</value>
<value>9.55462853</value>
<value>4.77731427</value>
<value>2.38865713</value>
<value>1.19432857</value>
</list>
</property-->
<property name="tileWidth" value="256"/>
<property name="tileHeight" value="256"/>
</bean>
<bean name="osm" class="org.geomajas.layer.osm.OsmLayer" >
<property name="layerInfo" ref="osmInfo" />
</bean>
Example 2.2. OpenStreetMap layer configuration example
The layer info inner bean has the same general content as usual, with one exception : the dataSourceName property is not necessary in this case. As with the WMS layer, the resolutions have been carefully chosen to match the tile server's resolutions. The tile width and height are implied by the server in this case but since they are required metadata for all raster layers, they should be set to the server's values: 256 x 256.
The default configuration for the server layer will use the Mapnik rendering of OpenStreetMap by round robin iteration over the following base URLs:
http://a.tile.openstreetmap.org
http://b.tile.openstreetmap.org
http://c.tile.openstreetmap.org
If you want to use a different list of base URLs to render e.g. Tiles@Home tiles, cycle map tiles or even custom tiles, you can specify a new set of base URLs in the server configuration:
<bean name="cyclemap" class="org.geomajas.layer.osm.OsmLayer" >
<property name="layerInfo" ref="osmInfo" />
<property name="baseUrls">
<list>
<value>http://a.tile.opencyclemap.org/cycle</value>
<value>http://b.tile.opencyclemap.org/cycle</value>
<value>http://c.tile.opencyclemap.org/cycle</value>
</list>
</property>
</bean>
It is even possible to configure your own tile builder strategy by
setting the urlBuilder property of the server layer to a
custom TileUrlBuilder implementation.