// =============================================================
// Anfahrt mit Open Source
// =============================================================
// zeichnet ein Karte in einen
// am besten mit
// und #map { width:100%; height:500px; border: 1px solid black; }
// siehe osm.css
var map;
var layer_mapnik;
var layer_markers;
// =============================================================
// drawmap(lon,lat,zoom,markertext
// zeichnet ein Karte in einen
function drawmap(lon,lat,zoom,markertext) {
OpenLayers.Lang.setCode('de');
// Position und Zoomstufe der Karte
// Kartendefinition
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.LayerSwitcher(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults(),
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.NavToolbar(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition()],
maxExtent:
new OpenLayers.Bounds(-20037508.34,-20037508.34,
20037508.34, 20037508.34),
numZoomLevels: 18,
maxResolution: 156543,
units: 'meters'
});
// Hier wird festgelegt, dass der Layer "Mapnik" verwendet wird;
// testweise kann hier auch "Osmarender" oder "Cycle Map" eingesetzt werden
layer_mapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
layer_osmar = new OpenLayers.Layer.OSM.Mapnik("Osmarender");
layer_markers = new OpenLayers.Layer.Markers("Address", { projection: new OpenLayers.Projection("EPSG:4326"),
visibility: true, displayInLayerSwitcher: false });
map.addLayers([layer_mapnik, layer_osmar, layer_markers]);
addMarker(layer_markers, lon, lat, markertext);
setMyCenter(lon,lat,zoom);
// ende function drawmap
}
function setMyCenter(lo,la,zo) {
var lonLat = new OpenLayers.LonLat(lo, la).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
map.setCenter (lonLat, zo);
// ende function setMyCenter
}
function addMarker(layer, lo, la, popupContentHTML) {
var lonLat = new OpenLayers.LonLat(lo, la).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
var feature = new OpenLayers.Feature(layer, lonLat);
feature.closeBox = true;
feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {minSize: new OpenLayers.Size(300, 90) } );
feature.data.popupContentHTML = popupContentHTML;
feature.data.overflow = "hidden";
var marker = new OpenLayers.Marker(lonLat);
marker.feature = feature;
var markerClick = function(evt) {
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
OpenLayers.Event.stop(evt);
};
marker.events.register("mousedown", feature, markerClick);
layer.addMarker(marker);
//map.addPopup(feature.createPopup(feature.closeBox));
}