// Create <div/> element where the map is placed in
global $wgExtensionAssetsPath;
- $width_s = (isset($properties['width'])) ? (string) $properties['width'] . 'px' : '100%';
- $height_s = (isset($properties['height']) ? (string) $properties['height'] : 450) . 'px';
- $output = "<div class=\"wrmap\" style=\"width: $width_s; height: $height_s; border-style:none;\" data-img-path=\"$wgExtensionAssetsPath/wrmap/openlayers/img/\">";
+ $output = "<div class=\"wrmap\" style=\"border-style:none;\" data-img-path=\"$wgExtensionAssetsPath/wrmap/openlayers/img/\">";
$output .= htmlspecialchars($json_string, ENT_NOQUOTES);
$output .= "</div>\n";
"use strict";
function init_wrmap(i, jq_map) {
+ // define constants
+ var EPSG4326 = new OpenLayers.Projection("EPSG:4326"); // lon/lat
+ var EPSG3857 = new OpenLayers.Projection("EPSG:3857"); // google
+
+ // extract geojson from map element and clear map element's content
jq_map = $(jq_map);
OpenLayers.ImgPath = jq_map.attr('data-img-path'); // e.g. "/mediawiki/extensions/wrmap/openlayers/img/"
var json_string = jq_map.text();
jq_map.empty(); // once parsed, remove geojson string from the map element.
-
- // extract, tranform and split features to layers
- var EPSG4326 = new OpenLayers.Projection("EPSG:4326"); // lon/lat
- var EPSG3857 = new OpenLayers.Projection("EPSG:3857"); // google
var format_json = new OpenLayers.Format.JSON();
var json_js = format_json.read(json_string);
var format_geojson = new OpenLayers.Format.GeoJSON();
var features_all = format_geojson.read(json_js);
+
+ // extract, tranform and split features to layers
var features_path = new Array();
var features_point = new Array();
for (var i = 0; i != features_all.length; ++i) {
var lon = json_js.properties.lon;
var lat = json_js.properties.lat;
var zoom = json_js.properties.zoom;
+ var width = json_js.properties.width;
+ var height = json_js.properties.height;
if (zoom === undefined) zoom = 10; // default zoom
+ if (width === undefined) width = '100%'; // default width
+ if (height === undefined) height = 450; // default: 450 pixel
+ jq_map.width(width);
+ jq_map.height(height);
var map = new OpenLayers.Map(jq_map.context, {
projection: EPSG3857,
displayProjection: EPSG4326,