Hi,
I have set up osm2pgsql,mapnik on ubuntu server. I have also generated tiles locally. Now I want to display these tiles on map in a JSP page. I am using open layers. I have been trying it. The code works fine in html, but if same thing I do in a jsp page, it does not open map tiles. Only pink canvas is displayed. On rightclick, it displayes map tile path as "/LocalFolder///.png". Error screen shot is attached. And source code is given below.
Please let me know what is the procedure I should follow to display local map on a jsp page(Tomcat server),
Code:
function init() {
map = new OpenLayers.Map ($('map'), {
controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.ScaleLine({geodesic: true}),
new OpenLayers.Control.Permalink('permalink'),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Attribution()],
maxExtent: new OpenLayers.Bounds(-180,-90,180,90),
minExtent: new OpenLayers.Bounds(-1,-1,1,1),
'maxResolution': 360/512,
numZoomLevels: 4,
units: 'dd',
projection: new OpenLayers.Projection("EPSG:900913"),
// displayProjection: new OpenLayers.Projection("EPSG:4326")
displayProjection: new OpenLayers.Projection("EPSG:900913")
} );
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
layerMapnik.setOpacity(0.4);
// map.addLayer(layerMapnik);
layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("CycleMap");
layerCycleMap.setOpacity(0.4);
// map.addLayer(layerCycleMap);
// This is the layer that uses the locally stored tiles
var newLayer = new OpenLayers.Layer.OSM("Localhost",
"IndiaMap/${z}/${x}/${y}.png", {numZoomLevels: 4, alpha: true,
isBaseLayer: true});
//var newLayer = new OpenLayers.Layer.OSM("LocalTiles",
"IndiaMap/${0}/${0}/${0}.png", {numZoomLevels: 10, alpha: true,
isBaseLayer: true});
//layerLocalMap = new OpenLayers.Layer.OSM.LocalMap("LocalMap");
// layerLocalMap.setOpacity(0.4);
//newLayer.setOpacity(0.6);
map.addLayer(newLayer);
// This is the end of the layer
var switcherControl = new OpenLayers.Control.LayerSwitcher();
map.addControl(switcherControl);
switcherControl.maximizeControl();
if( ! map.getCenter() ){
var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
map.setCenter (lonLat, zoom);
}
}
maperror.png
asked 22 Aug '12, 08:32

Reshma Maner
235●30●31●36
accept rate: 0%
edited 22 Aug '12, 12:37

NicolasDumoulin
3.3k●4●22●56
Thanks for the help. Putting escape character solved the problem.
One more query please. I have generated tiles for India map using Mapnik. I can display them on a jsp page using openlayers. Do I need to run a separate map server now for serving the tiles OR only if I copy the tiles on my main server and give the path of that folder in my jsp code will do?
Basically, I want to know if map tiles are stored in a local folder and accessed from there in a jsp page, why is a map server required?
If you want only serve tiles, mapserver isn't needed. You can serve tiles with any file http server.
Don't forget to close your question if it's ok.