X-Git-Url: https://dev.renevier.net/?p=syj.git;a=blobdiff_plain;f=public%2Fjs%2Fsyjraw.js;h=59b3f5c4a876eee75c5ef794ac3862827758e6f7;hp=ec783f4d677685ddf82e1d4cb5fc5d267940e5eb;hb=c06c7fd6e6f26d31abb8d7c9a9f9e3f2d5b27d5c;hpb=26afcb880ff75743abcb627ecf516b6c51a36d08 diff --git a/public/js/syjraw.js b/public/js/syjraw.js index ec783f4..59b3f5c 100644 --- a/public/js/syjraw.js +++ b/public/js/syjraw.js @@ -1,3 +1,8 @@ +/* This file is part of Syj, Copyright (c) 2010-2011 Arnaud Renevier, + and is published under the AGPL license. */ + +"use strict"; + var WGS84 = new OpenLayers.Projection("EPSG:4326"); var Mercator = new OpenLayers.Projection("EPSG:900913"); @@ -11,12 +16,39 @@ var styleMap = { }) }; +function resizeMap() { + var map = document.getElementById('map'); + map.style.width = map.offsetWidth.toString() + 'px'; + map.style.height = map.offsetHeight.toString() + 'px'; +} + +function mapquestLayer() { + return new OpenLayers.Layer.OSM("MapQuest", [ + 'http://otile1.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png', + 'http://otile2.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png', + 'http://otile3.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png', + 'http://otile4.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png'], + { attribution: SyjStrings.mapquestAttribution}); +} + +function mapnikLayer() { + return new OpenLayers.Layer.OSM("Mapnik", [ + 'http://a.tile.openstreetmap.org/${z}/${x}/${y}.png', + 'http://b.tile.openstreetmap.org/${z}/${x}/${y}.png', + 'http://c.tile.openstreetmap.org/${z}/${x}/${y}.png'], + { attribution: SyjStrings.osmAttribution}); +} + function init() { var map = new OpenLayers.Map('map', { - controls: [ new OpenLayers.Control.Attribution() ], + controls: [ + new OpenLayers.Control.Navigation(), + new OpenLayers.Control.Attribution() + ], theme: null}), - baseLayer = new OpenLayers.Layer.OSM("OSM", null, { attribution: SyjStrings.osmAttribution }), + parameters = OpenLayers.Util.getParameters(window.location.href), + baseLayer = null, layerOptions = {format: OpenLayers.Format.WKT, projection: WGS84, @@ -26,14 +58,33 @@ function init() { viewLayer = new OpenLayers.Layer.Vector("View Layer", layerOptions), wkt = new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 }); + if (parameters.layer) { + switch (parameters.layer.toUpperCase()) { + case 'Q': + baseLayer = mapquestLayer(); + break; + case 'M': + baseLayer = mapnikLayer(); + break; + } + } + + if (!baseLayer) { + baseLayer = mapnikLayer(); + } + map.addLayers([baseLayer, viewLayer]); viewLayer.addFeatures([wkt.read(gInitialGeom.data)]); - extent = viewLayer.getDataExtent(); + var extent = viewLayer.getDataExtent(); map.updateSize(); map.zoomToExtent(extent); - + resizeMap(); } +window.onresize = function() { + resizeMap(); +}; + if (window.addEventListener) { window.addEventListener("load", init, false); } else {