[OpenLayers-Users] OpenLayers + MapServer + Own maps showing
miniature tiles
Henrik Collin
hcollin78 at googlemail.com
Fri Feb 12 03:14:46 EST 2010
Hello,
I am currently trying to build a service that shows a map in a webpage with
OpenLayers. The OpenLayers requests the map data from MapServer by using WMS
and then draws some features in a layer on top of the map data.
My main problem is that the loaded map shows as a tiny dot in the screen
until I zoom enough. This would be okay if the features would be drawn
correctly on the map but alas they are not. They are off from the position
thousands of kilometres. My features are in projection EPSG4326 which is
converted to EPSG2393 the map uses. Projections have been setup in both
systems MapServer and OpenLayers.
The map consists of multiple tiles that have been combined to shapefile with
MapServers shp2img.exe. When I request the map file form the browser it
works perfectly. It returns me the correct piece of the map in the correct
tile size.
Does anyone have any idea what am I doing wrong? This is my first try with
both services OpenLayers and MapServer so I am not quite sure which one is
causing the problems, but as the MapServer returns a correct result when
quering directly my educated guess is that the problem lies in the
OpenLayers side.
I originally tried the OpenLayers side with Google Maps and got that working
ok.
_____________________________________________________________________________________
HTML (In Header):
<script type="text/javascript" src="js/openlayers/OpenLayers.js"></script>
<script type="text/javascript" src="js/proj4js/proj4js.js"></script>
<script type="text/javascript" src="js/proj4js/defs/EPSG2393.js"></script>
<script type="text/javascript" src="js/proj4js/defs/EPSG4326.js"></script>
<script type="text/javascript" src="js/proj4js/defs/EPSG900913.js"></script>
_____________________________________________________________________________________
OPENLAYERS: (This is not a direct copy of the code as the actual code is
written inside multiple MooTools classes and contains a lot of code not
needed in here.)
var mapOptions = {
projection: new OpenLayers.Projection("EPSG:2393"),
units: "m",
// maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34,
20037508.34, 20037508.34)
}
var x = 23;
var y = 60;
var pos = {
lat: x,
lon: y,
zoom: 6
};
Method from a class responsible for loading the layers and initializing the
map.
loadMap: function() {
// Create map layer
this.map = new OpenLayers.Map(paneMain, mapOptions);
this.map.addControl(new OpenLayers.Control.NavToolbar());
/*
this.gphy = new OpenLayers.Layer.Google(
"Google Physical",
{type: G_PHYSICAL_MAP, sphericalMercator: true}
);
this.map.addLayer(this.gphy);
*/
this.wmsserv = new OpenLayers.Layer.WMS(
"WMS Server",
"http://localhost:591/cgi-bin/mapserv.exe?map=/ms4w/apps/service/wms.map&",
{
layers: "Kartta",
SRS: "EPSG:2393",
format: "image/png"
},
{ isBaseLayer: true }
);
this.map.addLayer(this.wmsserv);
// Add Vector Layer on top of the map layer
var vectorStyleMap = new OpenLayers.StyleMap({
graphicZIndex: 100
});
this.layerLines = new OpenLayers.Layer.Vector("Line Layer", { styleMap:
vectorStyleMap, rendererOptions: { zIndexing: true } });
this.map.addLayer(this.layerLines);
// Add layer controls
selectControl = new OpenLayers.Control.SelectFeature(
this.layerLines,
{
clickout: true, toggle: true,
multiple: false, hover: false,
onSelect: this.LineClick,
onUnSelect: this.LineUnSelect
}
);
this.map.addControl(selectControl);
selectControl.activate();
this.map.events.register("zoomend", this, function(e) {
this.redrawDots();
});
// Center the map
var centerPos = new OpenLayers.LonLat(pos.lon, pos.lat).transform(new
OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:2393"));
this.map.setCenter(centerPos, this.pos.zoom, false, false);
},
_____________________________________________________________________________________
WMS.MAP (Settings in the MapServer side)
MAP
NAME "Service"
STATUS ON
SIZE 256 256
IMAGECOLOR 128 128 192
# EXTENT 2417774 6720000 2430000 6730000 # Koko kartta
# EXTENT 2427774 6724000 2429000 6726000 # Zoom
# EXTENT 3050187.8969 6585228.0377 3761549.0272 7803095.3519
IMAGETYPE PNG
UNITS METERS
SHAPEPATH "maps/"
PROJECTION
"init=epsg:2393"
# "proj=tmerc"
# "lat_0=0"
# "lon_0=27"
# "k=1"
# "x_0=3500000"
# "y_0=0"
# "ellps=intl"
# "towgs84=-96.0617,-82.4278,-121.7435,4.80107,0.34543,-1.37646,1.4964"
# "units=m"
# "no_defs"
END
WEB
IMAGEPATH "/ms4w/tmp/ms_tmp/"
IMAGEURL "/ms_tmp/"
TEMPLATE "service.html"
LOG "service.log"
METADATA
"wms_title" "Service"
"wms_onlineresource"
"http://localhost:591/cgi-bin/mapserv.exe?map=/ms4w/apps/service/wms.map&"
"wms_srs" "EPSG:4022"
END
END
LAYER
NAME "Kartta"
METADATA
"wms_title" "Map layer"
END
TYPE RASTER
STATUS ON
TILEINDEX "testshape.shp"
DUMP TRUE
PROJECTION
"init=epsg:2393"
# "proj=tmerc"
# "lat_0=0"
# "lon_0=27"
# "k=1"
# "x_0=3500000"
# "y_0=0"
# "ellps=intl"
#
"towgs84=-96.0617,-82.4278,-121.7435,4.80107,0.34543,-1.37646,1.4964"
# "units=m"
# "no_defs"
END
END
END
--
View this message in context: http://n2.nabble.com/OpenLayers-MapServer-Own-maps-showing-miniature-tiles-tp4559876p4559876.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list