SkipperGuide:Interne Dokumentation/Maps-OpenSeaMap-Integration: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Peter (Diskussion | Beiträge) Dokumentation OpenSeaMap-Patch |
K Textersetzung - „layers=openriverboat, osm-mapnik, osm-oseam, osm-oseam-cemt“ durch „layers=OpenSeaMap, OpenStreetMap“ |
||
| (10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 10: | Zeile 10: | ||
| zoom=7 | | zoom=7 | ||
| service=openlayers | | service=openlayers | ||
| layers= | | layers=OpenSeaMap, OpenStreetMap | ||
}} | }} | ||
| Zeile 23: | Zeile 23: | ||
| zoom=7 | | zoom=7 | ||
| service=openlayers | | service=openlayers | ||
| layers= | | layers=OpenSeaMap, OpenStreetMap | ||
}} | }} | ||
</pre> | </pre> | ||
=Erforderliche Anpassungen= | =Erforderliche Anpassungen= | ||
Die Extension "Maps" unterstützt nicht von Haus aus OpenSeaMap. Hierzu sind Erweiterungen am existierenden Extension-Code erforderlich. Großen Dank an [[Benutzer:Kannix]] für die Lösung des Problems! | Die Extension "Maps" unterstützt nicht von Haus aus OpenSeaMap. Hierzu sind Erweiterungen am existierenden Extension-Code erforderlich. Großen Dank an [[Benutzer:Kannix]] für die Lösung des Problems! | ||
| Zeile 53: | Zeile 54: | ||
'osm-mapnik', | 'osm-mapnik', | ||
'osm-cyclemap', | 'osm-cyclemap', | ||
' | 'openriverboat', | ||
'osm-oseam', | 'osm-oseam', | ||
'osm-oseam-cemt' | 'osm-oseam-cemt' | ||
| Zeile 66: | Zeile 67: | ||
wird zu: | wird zu: | ||
' | 'openriverboat' => array( 'OpenLayers.Layer.OSM.OpenRiverBoat("OpenRiverBoatMap")', 'osm' ), | ||
'osm-mapnik' => array( 'OpenLayers.Layer.OSM.Mapnik("OSM Mapnik")', 'osm' ), | 'osm-mapnik' => array( 'OpenLayers.Layer.OSM.Mapnik("OSM Mapnik")', 'osm' ), | ||
'osm-cyclemap' => array( 'OpenLayers.Layer.OSM.CycleMap("OSM Cycle Map")', 'osm' ), | 'osm-cyclemap' => array( 'OpenLayers.Layer.OSM.CycleMap("OSM Cycle Map")', 'osm' ), | ||
| Zeile 89: | Zeile 90: | ||
'yahoo' => array( 'yahoo-normal', 'yahoo-satellite', 'yahoo-hybrid' ), | 'yahoo' => array( 'yahoo-normal', 'yahoo-satellite', 'yahoo-hybrid' ), | ||
'bing' => array( 'bing-normal', 'bing-satellite', 'bing-hybrid' ), | 'bing' => array( 'bing-normal', 'bing-satellite', 'bing-hybrid' ), | ||
'osm' => array( ' | 'osm' => array( 'openriverboat', 'osm-mapnik', 'osm-cyclemap', 'osm-oseam', 'osm-oseam-cemt' ), | ||
); | ); | ||
== extensions\Maps\includes\services\OpenLayers\OSM\OpenStreetMap.js == | == extensions\Maps\includes\services\OpenLayers\OSM\OpenStreetMap.js == | ||
| Zeile 98: | Zeile 97: | ||
<pre> | <pre> | ||
// CUSTOM | // CUSTOM | ||
/** | |||
* Class: OpenLayers.Layer.OSM.OpenRiverBoat | |||
* | |||
* Inherits from: | |||
* - <OpenLayers.Layer.OSM> | |||
*/ | |||
OpenLayers.Layer.OSM.OpenRiverBoat = OpenLayers.Class(OpenLayers.Layer.OSM, { | |||
/** | |||
* Constructor: OpenLayers.Layer.OSM.OpenRiverBoat | |||
* | |||
* Parameters: | |||
* name - {String} | |||
* options - {Object} Hashtable of extra options to tag onto the layer | |||
*/ | |||
initialize: function(name, options) { | |||
var url = [ | |||
"http://a.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png", | |||
"http://b.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png", | |||
"http://c.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png" | |||
]; | |||
options = OpenLayers.Util.extend({ | |||
numZoomLevels: 19, | |||
buffer: 0, | |||
transitionEffect: "resize" | |||
}, options); | |||
var newArguments = [name, url, options]; | |||
OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments); | |||
}, | |||
CLASS_NAME: "OpenLayers.Layer.OSM.OpenRiverBoat" | |||
}); | |||
/** | /** | ||
* Class: OpenLayers.Layer.OSM.OSeaMCEMT | * Class: OpenLayers.Layer.OSM.OSeaMCEMT | ||
| Zeile 114: | Zeile 146: | ||
initialize: function(name, options) { | initialize: function(name, options) { | ||
var url = [ | var url = [ | ||
"http:// | "http://tiles.grade.de/tiles.py/cemt/${z}/${x}/${y}.png" | ||
]; | ]; | ||
options = OpenLayers.Util.extend({ | options = OpenLayers.Util.extend({ | ||
Aktuelle Version vom 5. Juli 2023, 14:00 Uhr
Demo
Code:
{{
#display_map:
52.5,5.3~~Niederlande
| height= 400px
| width= 350px
| resizable=yes
| zoom=7
| service=openlayers
| layers=OpenSeaMap, OpenStreetMap
}}
Erforderliche Anpassungen
Die Extension "Maps" unterstützt nicht von Haus aus OpenSeaMap. Hierzu sind Erweiterungen am existierenden Extension-Code erforderlich. Großen Dank an Benutzer:Kannix für die Lösung des Problems!
Betroffene Dateien
- extensions\Maps\Maps_Settings.php
- extensions\Maps\includes\services\OpenLayers\OSM\OpenStreetMap.js
- extensions\Maps\includes\services\OpenLayers\OpenLayers\theme\default\style.css
extensions\Maps\Maps_Settings.php
Zeile 256: # Array of String. The default layers for Open Layers. This value will only be
# used when the user does not provide one. $egMapsOLLayers = array( 'osm-mapnik', 'osm-cyclemap', 'osmarender' );
wird zu:
# Array of String. The default layers for Open Layers. This value will only be # used when the user does not provide one. $egMapsOLLayers = array( 'osm-mapnik', 'osm-cyclemap', 'openriverboat', 'osm-oseam', 'osm-oseam-cemt' );
Zeile 276:
'osmarender' => array( 'OpenLayers.Layer.OSM.Osmarender("OSM arender")', 'osm' ),
'osm-mapnik' => array( 'OpenLayers.Layer.OSM.Mapnik("OSM Mapnik")', 'osm' ),
'osm-cyclemap' => array( 'OpenLayers.Layer.OSM.CycleMap("OSM Cycle Map")', 'osm' ),
wird zu:
'openriverboat' => array( 'OpenLayers.Layer.OSM.OpenRiverBoat("OpenRiverBoatMap")', 'osm' ),
'osm-mapnik' => array( 'OpenLayers.Layer.OSM.Mapnik("OSM Mapnik")', 'osm' ),
'osm-cyclemap' => array( 'OpenLayers.Layer.OSM.CycleMap("OSM Cycle Map")', 'osm' ),
'osm-oseam' => array( 'OpenLayers.Layer.OSM.OSeaM("OSM OSeaM")', 'osm' ),
'osm-oseam-cemt' => array( 'OpenLayers.Layer.OSM.OSeaMCEMT("OSM OSeaM-CEMT")', 'osm' ),
Zeile 284:
# Layer group definitions. Group names must be different from layer names, and # must only contain layers that are present in $egMapsOLAvailableLayers. $egMapsOLLayerGroups = array( 'yahoo' => array( 'yahoo-normal', 'yahoo-satellite', 'yahoo-hybrid' ), 'bing' => array( 'bing-normal', 'bing-satellite', 'bing-hybrid' ), 'osm' => array( 'osmarender', 'osm-mapnik', 'osm-cyclemap' ), );
wird zu:
# Layer group definitions. Group names must be different from layer names, and # must only contain layers that are present in $egMapsOLAvailableLayers. $egMapsOLLayerGroups = array( 'yahoo' => array( 'yahoo-normal', 'yahoo-satellite', 'yahoo-hybrid' ), 'bing' => array( 'bing-normal', 'bing-satellite', 'bing-hybrid' ), 'osm' => array( 'openriverboat', 'osm-mapnik', 'osm-cyclemap', 'osm-oseam', 'osm-oseam-cemt' ), );
extensions\Maps\includes\services\OpenLayers\OSM\OpenStreetMap.js
Folgender Code ist in der Klasse zu ergänzen:
// CUSTOM
/**
* Class: OpenLayers.Layer.OSM.OpenRiverBoat
*
* Inherits from:
* - <OpenLayers.Layer.OSM>
*/
OpenLayers.Layer.OSM.OpenRiverBoat = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
* Constructor: OpenLayers.Layer.OSM.OpenRiverBoat
*
* Parameters:
* name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
var url = [
"http://a.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png",
"http://b.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png",
"http://c.tile.openstreetmap.fr/openriverboatmap/${z}/${x}/${y}.png"
];
options = OpenLayers.Util.extend({
numZoomLevels: 19,
buffer: 0,
transitionEffect: "resize"
}, options);
var newArguments = [name, url, options];
OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments);
},
CLASS_NAME: "OpenLayers.Layer.OSM.OpenRiverBoat"
});
/**
* Class: OpenLayers.Layer.OSM.OSeaMCEMT
*
* Inherits from:
* - <OpenLayers.Layer.OSMCEMT>
*/
OpenLayers.Layer.OSM.OSeaMCEMT = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
* Constructor: OpenLayers.Layer.OSM.OSeaMCEMT
*
* Parameters:
* name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
var url = [
"http://tiles.grade.de/tiles.py/cemt/${z}/${x}/${y}.png"
];
options = OpenLayers.Util.extend({
numZoomLevels: 19,
buffer: 0,
transitionEffect: "resize",
alpha : true,
isBaseLayer : false
}, options);
var newArguments = [name, url, options];
OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments);
},
CLASS_NAME: "OpenLayers.Layer.OSM.OSeaMCEMT"
});
/**
* Class: OpenLayers.Layer.OSM.OSeaM
*
* Inherits from:
* - <OpenLayers.Layer.OSM>
*/
OpenLayers.Layer.OSM.OSeaM = OpenLayers.Class(OpenLayers.Layer.OSM, {
/**
* Constructor: OpenLayers.Layer.OSM.OSeaM
*
* Parameters:
* name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
var url = [
"http://t1.openseamap.org/seamark/${z}/${x}/${y}.png"
];
options = OpenLayers.Util.extend({
numZoomLevels: 19,
buffer: 0,
transitionEffect: "resize",
alpha : true,
isBaseLayer : false
}, options);
var newArguments = [name, url, options];
OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments);
},
CLASS_NAME: "OpenLayers.Layer.OSM.OSeaM"
});
extensions\Maps\includes\services\OpenLayers\OpenLayers\theme\default\style.css
Zeile 278:
.olImageLoadError {
background-color: pink;
opacity: 0.5;
filter: alpha(opacity=50); /* IE */
}
wird zu:
.olImageLoadError {
/* when OL encounters a 404, don't display the pink image */
display: none !important;
}