diff --git a/src/plugins/lib/libhtmlconst.py b/src/plugins/lib/libhtmlconst.py index fd7a3f791..ee27a9d04 100644 --- a/src/plugins/lib/libhtmlconst.py +++ b/src/plugins/lib/libhtmlconst.py @@ -121,33 +121,32 @@ _COPY_OPTIONS = [ # NarrativeWeb javascript code for PlacePage's "Open Street Map"... openstreet_jsc = """ - var marker; - var map; +OpenLayers.Lang.setCode("%s"); - OpenLayers.Lang.setCode("%s"); +function initialize() { + map = new OpenLayers.Map("map_canvas"); + map.addLayer(new OpenLayers.Layer.OSM()); - function initialize(){ - map = new OpenLayers.Map("map_canvas"); - - var center = new OpenLayers.LonLat(%s, %s); - var zoom = 11; - map.setCenter(center, zoom); - - var osm = new OpenLayers.Layer.OSM("OpenStreetMap"); - var markers = new OpenLayers.Layer.Markers("Markers"); - markers.addMarker(new OpenLayers.Marker(marker)); - - map.addLayers([osm, markers]); - - // add overview control - map.addControl(new OpenLayers.Control.OverviewMap()); - - // add a layer switcher - map.addControl(new OpenLayers.Control.LayerSwitcher()); + var lonLat = new OpenLayers.LonLat(%s, %s) + .transform( + new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 + map.getProjectionObject() // to Spherical Mercator Projection + ); + var zoom =16; + map.setCenter(lonLat, zoom); - map.zoomToMaxExtent(); + var osm = new OpenLayers.Layer.OSM("OpenStreetMap"); + var markers = new OpenLayers.Layer.Markers( "Markers" ); + markers.addMarker(new OpenLayers.Marker(lonLat)); + + map.addLayers([osm, markers]); - }""" + // add overview control + map.addControl(new OpenLayers.Control.OverviewMap()); + + // add a layer switcher + map.addControl(new OpenLayers.Control.LayerSwitcher()); +}""" # NarrativeWeb javascript code for PlacePage's "Google Maps"... google_jsc = """ diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py index bc1561b52..20a8c9be0 100644 --- a/src/plugins/webreport/NarrativeWeb.py +++ b/src/plugins/webreport/NarrativeWeb.py @@ -1134,16 +1134,15 @@ class BasePage(object): # Header constants xmllang = Utils.xml_lang() - _META1 = 'name="generator" content="%s %s %s"' % ( + _META1 = 'name ="viewport" content ="width=device-width, initial-scale=1.0, user-scalable=yes" ' + _META2 = 'name="generator" content="%s %s %s"' % ( const.PROGRAM_NAME, const.VERSION, const.URL_HOMEPAGE) - - _META2 = 'name="author" content="%s"' % self.author - _META3 = 'name ="viewport" content ="width=device-width, initial-scale=1.0, user-scalable=yes" ' + _META3 = 'name="author" content="%s"' % self.author page, head, body = Html.page('%s - %s' % - (html_escape(self.title_str), + (html_escape(self.title_str.strip()), html_escape(title)), - self.report.encoding, xmllang ) + self.report.encoding, xmllang) # temporary fix for .php parsing error if self.ext in [".php", ".php3", ".cgi"]: @@ -2592,13 +2591,11 @@ class PlacePage(BasePage): url = self.report.build_url_fname(fname, None, self.up) head += Html("link", href = url, type = "text/css", media = "screen", rel = "stylesheet") - # add googlev3 specific javascript code + # add MapService specific javascript code if self.mapservice == "Google": head += Html("script", type ="text/javascript", src ="http://maps.googleapis.com/maps/api/js?sensor=false", inline =True) - - # try to add OpenLayers specific javascript code ... - if self.mapservice == "OpenStreetMap": + else: head += Html("script", type ="text/javascript", src ="http://www.openlayers.org/api/OpenLayers.js", inline =True) @@ -2609,27 +2606,16 @@ class PlacePage(BasePage): with Html("div", id ="map_canvas") as canvas: placedetail += canvas - if self.mapservice == "OpenStreetMap": - url = 'http://www.openstreetmap.com/?lat=%s&lon=%s&zoom=11&layers=M' % ( - latitude, longitude) - canvas += Html("object", type ="text/html", width ="98%", height ="98%", - data =url) - # begin inline javascript code - # because jsc is a string, it does NOT have to be properly indented + # because jsc is a docstring, it does NOT have to be properly indented with Html("script", type = "text/javascript") as jsc: - if self.mapservice == "Google": - head += jsc + head += jsc - # in Google Maps, they use Latitude before Longitude + if self.mapservice == "Google": jsc += google_jsc % (latitude, longitude) else: - canvas += jsc - - # in OpenStreetMap, they use Longitude before Latitude jsc += openstreet_jsc % (Utils.xml_lang()[3:5].lower(), - longitude, latitude) - + longitude, latitude) # there is no need to add an ending "", # as it will be added automatically! diff --git a/src/plugins/webstuff/css/narrative-maps.css b/src/plugins/webstuff/css/narrative-maps.css index 67d982ff9..71bc1c4bc 100644 --- a/src/plugins/webstuff/css/narrative-maps.css +++ b/src/plugins/webstuff/css/narrative-maps.css @@ -69,3 +69,12 @@ div#middlesection { float: center; overflow-y: hidden; } + +/* map_canvas-- place map holder +------------------------------------------------- */ +div#map_canvas { + margin-left: 30px; + border: solid 4px #000; + width: 900px; + height: 600px; +}