commit 46ecb92d5c0773f259e4141a3c5afea00c23bfd0 Author: Kasper D. Fischer Date: Fri Feb 22 08:20:26 2013 +0000 Moved www files for station maps from stations/trunk/www to www/trunk. Notes: r471 www/trunk diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8e948c5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto !eol diff --git a/index.html b/index.html new file mode 100644 index 0000000..dbf67b8 --- /dev/null +++ b/index.html @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + +
+ +
+ + + diff --git a/station_map_www.js b/station_map_www.js new file mode 100644 index 0000000..48ac2b2 --- /dev/null +++ b/station_map_www.js @@ -0,0 +1,313 @@ +/* + * JavaScript code to generate maps used by the + * Seismological Observatory of the Ruhr-University Bochum + * + * Copyright 2012 Kasper D. Fischer + * + * License + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * This program 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/. + * + * $Id$ + +*/ + +/* Global variables */ +var map; + +/* Main function to create the map */ +function init(showGoogle, showStations, showQuakes, noFrils) { + + /* Creating map */ + if ( !noFrils ) { + map = new OpenLayers.Map( + 'map', + { + projection: new OpenLayers.Projection("EPSG:900913"), + displayProjection: new OpenLayers.Projection("EPSG:4326"), + controls: [ + new OpenLayers.Control.Attribution(), + new OpenLayers.Control.KeyboardDefaults(), + new OpenLayers.Control.LayerSwitcher({}), + new OpenLayers.Control.MousePosition(), + new OpenLayers.Control.Navigation(), + new OpenLayers.Control.OverviewMap(), + new OpenLayers.Control.PanZoomBar({zoomWorldIcon: true}), + new OpenLayers.Control.Permalink(), + new OpenLayers.Control.ScaleLine({geodesic: true}) + ] + } + ); + } else { + map = new OpenLayers.Map( + 'map', + { + projection: new OpenLayers.Projection("EPSG:900913"), + displayProjection: new OpenLayers.Projection("EPSG:4326"), + controls: [ + new OpenLayers.Control.Attribution(), + new OpenLayers.Control.KeyboardDefaults(), + new OpenLayers.Control.Navigation(), + new OpenLayers.Control.Permalink({anchor: true}), + new OpenLayers.Control.ScaleLine({geodesic: true}) + ] + } + ); + }; + + /* Base Layers */ + // OpenStreetMap + var osmde_map_layer = new OpenLayers.Layer.OSM( + 'OpenStreetMap (DE)', + [ + "http://a.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png", + "http://b.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png", + "http://c.tile.openstreetmap.de/tiles/osmde/${z}/${x}/${y}.png" + ], + { + attribution: 'Geobasisdaten: Copyright © 2013 OpenStreetMap und Mitwirkende
' + + 'Lizenz: Creative Commons BY-SA 2.0.' + } + ); + var osm_map_layer = new OpenLayers.Layer.OSM( + 'OpenStreetMap (Standard)'); + map.addLayers([ + osmde_map_layer, + osm_map_layer + ]); + + // Google Maps + if (showGoogle) { + var googleT_map_layer = new OpenLayers.Layer.Google( + OpenLayers.i18n('Google Maps (Terrain)'), + {type: google.maps.MapTypeId.TERRAIN,transitionEffect: "resize"} + ); + var googleS_map_layer = new OpenLayers.Layer.Google( + OpenLayers.i18n("Google Maps (Satellite)"), + {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22,transitionEffect: "resize"} + ); + var googleH_map_layer = new OpenLayers.Layer.Google( + 'Google Maps (Hybrid)', + {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20,transitionEffect: "resize"} + ); + var googleM_map_layer = new OpenLayers.Layer.Google( + OpenLayers.i18n("Google Maps (Streets)"), + {numZoomLevels: 20,transitionEffect: "resize"} + ); + map.addLayers([ + googleT_map_layer, + googleS_map_layer, + googleH_map_layer, + googleM_map_layer + ]); + }; + + // Show quakes + quakes_layer = loadKML(OpenLayers.i18n("Events"), 'quakes.kml', false, true); + map.addLayer(quakes_layer); + quakes_layer.setVisibility(showQuakes); + + // Adding custom style to quakes + var quake_style_default = new OpenLayers.Style({ + fillColor: '${pntcolor}', fillOpacity: 0.2, + strokeColor: '${pntcolor}', strokeWidth: 2, + pointRadius: '${pntsize}' + }); + var quake_style_select = new OpenLayers.Style({ + fillColor: '${pntcolor}', fillOpacity: 0.8, + strokeColor: '${pntcolor}', strokeWidth: 2, + pointRadius: '${pntsize}' + }); + var quake_style_map = new OpenLayers.StyleMap({ + 'default': quake_style_default, + 'select': quake_style_select + }); + quakes_layer.styleMap = quake_style_map; + + // Show stations + stations_layer = loadKML(OpenLayers.i18n("Stations"), 'stations.kml', false, noFrils); + map.addLayer(stations_layer); + stations_layer.setVisibility(showStations); + + // Adding custom style to stations + var station_style_default = new OpenLayers.Style({ + fillColor: '#8dae10', fillOpacity: 0.8, + strokeColor: 'black', strokeWidth: 2, + label: "${text}", labelXOffset: 15, labelAlign: 'l', + fontColor: "${tcolor}", fontFamily: 'sans-serif', fontWeight: 'bold', + pointRadius: '${pntsize}', + graphicName: '${pntsymbol}' + }, + { + context: { + text: function(feature){ + if (feature.attributes.count) { + var c = feature.attributes.count; + for (var i=0; i= 10){ thresholdValue = 6} + if (noFrils) { + thresholdValue = 99; + distanceValue = 0 + }; + + var distanceValue = 10; + if (map.getZoom() <= 9){ distanceValue = 20} + + layer_strategy = [ + new OpenLayers.Strategy.Fixed(), + new OpenLayers.Strategy.Cluster({distance: distanceValue, threshold: thresholdValue}) + ]; + } + + // create kml layer + var kml_layer = new OpenLayers.Layer.Vector( + name, + { + strategies: layer_strategy, + protocol: new OpenLayers.Protocol.HTTP( + { + url: file, + format: new OpenLayers.Format.KML({ + extractStyles: useStyle, + extractAttributes: true, + maxDepth: 1 + }) + }), + transitionEffect: "resize", + projection: new OpenLayers.Projection("EPSG:4326") + }); + kml_layer.events.on( + { + "featureselected": onFeatureSelect, + "featureunselected": onFeatureUnselect + }); + + // return layer object + return kml_layer; +} + +/* Function called at closing of a popup */ +function onPopupClose(evt) { + select.unselectAll(); +} + +/* Function called when clicking on a markger */ +function onFeatureSelect(event) { + var feature = event.feature; + // Since KML is user-generated, do naive protection against + // Javascript. + if (feature.attributes.name){ + var content = "

"+feature.attributes.name + "

" + feature.attributes.description + '

'; + if (content.search(" + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + This program 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 General Public License + for more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see http://www.gnu.org/licenses/. + + $Id$ +""" + +import simplekml + +# create new empty KML file +kml = simplekml.Kml() + +# create empyt folder to contain styles and stations +stations_folder = kml.newfolder(name="Stations") + +# style of broad-band stations +BBstyle = simplekml.Style() +BBstyle.iconstyle.icon.href = 'https://maps.google.com/mapfiles/ms/micons/red-dot.png' +BBtcolor = '#003560' + +# style of short periode stations +SPstyle = simplekml.Style() +SPstyle.iconstyle.icon.href = 'https://maps.google.com/mapfiles/ms/micons/orange-dot.png' +SPtcolor = '#003560' + +# style of short periode stations +AUXstyle = simplekml.Style() +AUXstyle.iconstyle.icon.href = 'https://maps.google.com/mapfiles/ms/micons/yellow-dot.png' +AUXtcolor = '#003560' + +# setting station info +stations = { + 'BUG, BKLB': [(7.2693, 51.4406), "GRSN station BUG, STS-2 seismometer
RuhrNet station BKLB, GS-13 seismometer", BBstyle, 10, '#ff0000', 'BUG (Bochum University Germany), BKLB (Bochum - Klosterbusch)', BBtcolor, 1], + 'BULI': [(7.2602, 51.4544), 'RuhrNet station BULI, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'BULI', AUXtcolor, 0], + 'BTEZ': [(7.2790, 51.4490), 'RuhrNet station BTEZ, GS-13 seismometer', AUXstyle, 8, '#ffff00', 'BTEZ', AUXtcolor, 0], + 'BHOF': [(7.2614, 51.4289), 'RuhrNet station BHOF, GS-13 seismometer', AUXstyle, 8, '#ffff00', 'BHOF', AUXtcolor, 0], + 'BPFI': [(7.2276, 51.4185 ), 'RuhrNet station BBFI, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'BPFI', AUXtcolor, 0], + 'HMES': [(7.7263, 51.6578), 'RuhrNet station HMES, Trillium 40 seismometer', BBstyle, 10, '#ff0000', 'HMES', BBtcolor, 0], + 'BRHE': [(6.5710, 51.5155), 'RuhrNet station BRHE, Mark L-4C 3D seismometer', SPstyle, 10, '#ffa500', 'BRHE', SPtcolor, 0], + 'ZERL': [(6.8695, 51.6207), 'RuhrNet station ZERL, Mark L-4C 3D seismometer', SPstyle, 10, '#ffa500', 'ZERL', SPtcolor, 0], + 'ZER1': [(6.8252, 51.5948), 'RuhrNet station ZER1, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'ZER1', AUXtcolor, 0], + 'ZER2': [(6.9062, 51.5871 ), 'RuhrNet station ZER2, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'ZER2', AUXtcolor, 0], + 'ZER3': [(6.8384, 51.61274), 'RuhrNet station ZER3, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'ZER3', AUXtcolor, 0], + 'BAVN': [(7.1220, 51.7380), 'RuhrNet station BAVN, STS-2 seismometer', BBstyle, 10, '#ff0000', 'BAVN', BBtcolor, 0], + 'BAVS': [(7.13307, 51.7000), 'RuhrNet station BAVS, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'BAVS', AUXtcolor, 0], + 'IBBN': [(7.7566, 52.3072), 'GEOFON station IBBN, STS-2 seismometer', BBstyle, 10, '#ff0000', 'IBBN', BBtcolor, 0], + 'IBBE': [(7.7943, 52.2998), 'RuhrNet station IBBE, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'IBBE', AUXtcolor, 0], + 'IBBS': [(7.7486, 52.2843), 'RuhrNet station IBBS, Mark L-4C 3D seismometer', AUXstyle, 8, '#ffff00', 'IBBS', AUXtcolor, 0], + 'KERA': [(23.55769, 35.36919), 'GEOFON station KERA, STS-2 seismometer', BBstyle, 10, '#ff0000', 'KERA', BBtcolor, 0], + 'KARP': [(27.16117, 35.54717), 'GEOFON station KARP, STS-2 seismometer', BBstyle, 10, '#ff0000', 'KARP', BBtcolor, 0] + } +# 'BSHA': [(7.2445, 51.4469), 'RuhrNet station BSHA, GS-13 seismometer', AUXstyle, 8, '#ffff00', '', 'black'], +# 'BKLB': [(7.2697, 51.4401), 'RuhrNet station BKLB, GS-13 seismometer', AUXstyle, 8, '#ffff00', 'BKLB', AUXtcolor], + +# adding station markers +for key, value in stations.iteritems(): + pnt = stations_folder.newpoint( + name = key, + coords = [(value[0][0], value[0][1])], + description = value[1] + ) + pnt.style = value[2] + pnt.extendeddata.newdata('pntsize', value[3]) + pnt.extendeddata.newdata('pntcolor', value[4]) + pnt.extendeddata.newdata('text', value[5]) + pnt.extendeddata.newdata('tcolor', value[6]) + pnt.extendeddata.newdata('extrastation', value[7]) + +# saving the KML file +kml.save('stations.kml')