[OpenLayers-Users] OpenLayers + MapServer + Own maps
showing miniature tiles
Christopher Schmidt
crschmidt at metacarta.com
Fri Feb 12 08:56:04 EST 2010
On Fri, Feb 12, 2010 at 12:14:46AM -0800, Henrik Collin wrote:
>
> 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.
Your maxExtent and maxResolution are wrong, and unset, respectively.
You'll need to fix that.
-- Chris
> 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.
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
--
Christopher Schmidt
MetaCarta
More information about the Users
mailing list