Mercurial > hg > extraction-interface
diff geotemco/js/Map/MapConfig.js @ 0:b12c99b7c3f0
commit for previous development
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 19 Jan 2015 17:13:49 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/geotemco/js/Map/MapConfig.js Mon Jan 19 17:13:49 2015 +0100 @@ -0,0 +1,319 @@ +/* +* MapConfig.js +* +* Copyright (c) 2012, Stefan Jänicke. All rights reserved. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 3 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301 USA +*/ + +/** + * @class MapConfig + * Map Configuration File + * @author Stefan Jänicke (stjaenicke@informatik.uni-leipzig.de) + * @release 1.0 + * @release date: 2012-07-27 + * @version date: 2012-07-27 + */ +function MapConfig(options) { + + this.options = { + mapWidth : false, // false or desired width css definition for the map + mapHeight : '580px', // false or desired height css definition for the map + mapTitle : 'GeoTemCo Map View', // title will be shown in map header + mapIndex : 0, // index = position in location array; for multiple locations the 2nd map refers to index 1 + alternativeMap : [ + { + name: 'Barrington Roman Empire', + url: 'http://pelagios.dme.ait.ac.at/tilesets/imperium/${z}/${x}/${y}.png', + type:'XYZ', + attribution: "(c) Barrington Roman Empiry, <a href='http://pelagios.dme.ait.ac.at/maps/greco-roman/'>Pelagios</a>" + }, + { + name: 'Maps-for-Free Relief Map', + url: 'http://maps-for-free.com/layer/relief/z${z}/row${y}/${z}_${x}-${y}.jpg', + type:'XYZ', + attribution: "(c) <a href='http://www.maps-for-free.com/html/about.html'>Maps for Free</a>" + }, + { + name: 'Contemporary Map (2010)', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry2010', + attribution: "(c) <a href='http://epp.eurostat.ec.europa.eu/portal/page/portal/gisco_Geographical_information_maps/popups/references/administrative_units_statistical_units_1'>EuroStat</a>" + }, + { + name: 'Historical Map of 2006', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry2006', + attribution: "(c) <a href='http://epp.eurostat.ec.europa.eu/portal/page/portal/gisco_Geographical_information_maps/popups/references/administrative_units_statistical_units_1'>EuroStat</a>" + }, + { + name: 'Historical Map of 1994', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1994', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1945', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1945', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1938', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1938', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1920', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1920', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1914', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1914', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1880', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1880', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1815', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1815', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1783', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1783', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1715', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1715', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1650', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1650', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1530', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1530', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1492', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1492', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1279', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1279', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1000', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1000', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 800', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry800', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 600', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry600', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 400', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry400', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 200 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry200bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 323 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry323bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 500 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry500bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 1000 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry1000bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + { + name: 'Historical Map of 2000 BC', + url: 'http://geoserver.mpiwg-berlin.mpg.de/geoserver/mpiwg/wms', + layer: 'historic:cntry2000bc', + attribution: "(c) <a href='http://webcache.googleusercontent.com/search?q=cache:NbaEeiehhzQJ:library.thinkquest.org/C006628/citations.html&client=ubuntu&hl=de&gl=de&strip=1'> ThinkQuest Team C006628</a>" + }, + ], + legend : true, // if a legend at the bottom of the map should be shown or not + mapMerge : false, // if the elements of distinct datasets should be merged into one set or not + useGraphics : false, // if different graphics should represent different datasets or not + graphics : [ + { + shape: "circle", + rotation: 0 + }, + { + shape: "square", + rotation: 0 + }, + { + shape: "triangle", + rotation: 0 + }, + { + shape: "square", + rotation: 45 + } + ], + googleMaps : false, // enable/disable Google maps (actually, no Google Maps API key is required) + bingMaps : false, // enable/disable Bing maps (you need to set the Bing Maps API key below) + bingApiKey : 'none', // bing maps api key, see informations at http://bingmapsportal.com/ + osmMaps : true, // enable/disable OSM maps + osmMapsMapQuest : true, // enable/disable OSM maps with MapQuest tiles + baseLayer : 'Open Street Map', // initial layer to show (e.g. 'Google Streets') + resetMap : true, // show/hide map reset button + countrySelect : true, // show/hide map country selection control button + polygonSelect : true, // show/hide map polygon selection control button + circleSelect : true, // show/hide map circle selection control button + squareSelect : true, // show/hide map square selection control button + multiSelection : true, // true, if multiple polygons or multiple circles should be selectable + popups : true, // enabled popups will show popup windows for circles on the map + olNavigation : false, // show/hide OpenLayers navigation panel + olLayerSwitcher : false, // show/hide OpenLayers layer switcher + olMapOverview : false, // show/hide OpenLayers map overview + olKeyboardDefaults : true, // (de)activate Openlayers keyboard defaults + olScaleLine : false, // (de)activate Openlayers keyboard defaults + geoLocation : true, // show/hide GeoLocation feature + boundaries : { + minLon : -29, + minLat : 35, + maxLon : 44, + maxLat : 67 + }, // initial map boundaries or 'false' for no boundaries + mapBackground : '#bbd0ed', + labelGrid : true, // show label grid on hover + maxPlaceLabels : 6, // Integer value for fixed number of place labels: 0 --> unlimited, 1 --> 1 label (won't be shown in popup, 2 --> is not possible because of others & all labels --> 3 labels, [3,...,N] --> [3,...,N] place labels) + selectDefault : true, // true, if strongest label should be selected as default + maxLabelIncrease : 2, // maximum increase (in em) for the font size of a label + labelHover : false, // true, to update on label hover + ieHighlightLabel : "color: COLOR1; background-color: COLOR0; filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';", // css code for a highlighted place label in IE + highlightLabel : "color: COLOR0; text-shadow: 0 0 0.4em black, 0 0 0.4em black, 0 0 0.4em black, 0 0 0.4em COLOR0;", // css code for a highlighted place label + ieSelectedLabel : "color: COLOR1; font-weight: bold;", // css code for a selected place label in IE + selectedLabel : "color: COLOR1; font-weight: bold;", // css code for a selected place label + ieUnselectedLabel : "color: COLOR1; font-weight: normal;", // css code for an unselected place label in IE + unselectedLabel : "color: COLOR1; font-weight: normal;", // css code for an unselected place label + ieHoveredLabel : "color: COLOR1; font-weight: bold;", // css code for a hovered place label in IE + hoveredLabel : "color: COLOR1; font-weight: bold;", // css code for a hovered place label + circleGap : 0, // gap between the circles on the map (>=0) + circleOverlap : { + type: 'area', // 'area' or 'diameter' is possible + overlap: 0 // the percentage of allowed overlap (0<=overlap<=1) + }, // maximum allowed overlap in percent (if circleGap = 0, circleOverlap will be used) + minimumRadius : 4, // minimum radius of a circle with mimimal weight (>0) + circleOutline : 2, // false for no outline or a pixel value v with 0 < v + circleOpacity : 'balloon', // 'balloon' for dynamic opacity of the circles or a value t with 0 <= t <= 1 + minTransparency : 0.55, // maximum transparency of a circle + maxTransparency : 0.8, // minimum transparency of a circle + //binning : 'generic', // binning algorithm for the map, possible values are: 'generic', 'square', 'hexagonal', 'triangular' or false for 'no binning' + binning : false, + noBinningRadii : 'dynamic', // for 'no binning': 'static' for only minimum radii, 'dynamic' for increasing radii for increasing weights + circlePackings : true, // if circles of multiple result sets should be displayed in circle packs, if a binning is performed + binCount : 10, // number of bins for x and y dimension for lowest zoom level + showDescriptions : true, // true to show descriptions of data items (must be provided by kml/json), false if not + mapSelection : true, // show/hide select map dropdown + binningSelection : false, // show/hide binning algorithms dropdown + mapSelectionTools : true, // show/hide map selector tools + dataInformation : true, // show/hide data information + overlayVisibility : false, // initial visibility of additional overlays + //proxyHost : 'php/proxy.php?address=', //required for selectCountry feature, if the requested GeoServer and GeoTemCo are NOT on the same server + placenameTagsStyle : 'value' // the style of the placenames "surrounding" a circle on hover. 'zoom' for tags based on zoom level (old behaviour), 'value' for new value-based + + }; + if ( typeof options != 'undefined') { + $.extend(this.options, options); + } + + //if the user can change shape/color graphics have to be used + //but this will use circles as default shape + if (GeoTemConfig.allowUserShapeAndColorChange){ + this.options.useGraphics = true; + } + +}; + +MapConfig.prototype.getGraphic = function(id){ + var dataset = GeoTemConfig.datasets[id]; + + var graphic; + if (typeof dataset.graphic !== "undefined"){ + graphic = dataset.graphic; + } else{ + graphic = this.options.graphics[id % this.options.graphics.length]; + } + + var color; + if (typeof dataset.color !== "undefined"){ + color = dataset.color; + } else{ + color = GeoTemConfig.getColor(id); + } + return { + shape: graphic.shape, + rotation: graphic.rotation, + color: color + }; +};