Hallo!
Ich habe mir Netzwolfs POI-Editor [1] installiert. Wie bekomme ich nun hin, daß beim Öffnen der Seite auf meine aktuelle (reale) Position gezoomt wird?
Meine Programmierkenntnisse tendieren leider gegen Null.
Christian
Hallo!
Ich habe mir Netzwolfs POI-Editor [1] installiert. Wie bekomme ich nun hin, daß beim Öffnen der Seite auf meine aktuelle (reale) Position gezoomt wird?
Meine Programmierkenntnisse tendieren leider gegen Null.
Christian
Hast du dies auch gesehen? http://www.netzwolf.info/ol2/geolocation.htm
//----------------------------------------------------------------------------
// Wenn kein Permalink genutzt, nutze Geolokalisierung
// oder stelle bestimmten Bereich dar.
//----------------------------------------------------------------------------
if (!map.getCenter()) {
//--------------------------------------------------------------------
// zoome per Default auf die BBOX von DE
//--------------------------------------------------------------------
function zoomToDefault() {
map.zoomToExtent(new OpenLayers.Bounds(5.88, 47.26, 15.04, 54.91).
transform(map.displayProjection, map.getProjectionObject()));
}
if (navigator.geolocation) {
var done = false;
navigator.geolocation.getCurrentPosition (
//----------------------------------------------------
// Geolocation gefunden
//----------------------------------------------------
function (position) {
//--------------------------------------------
// Dumm gelaufen, Timeout war schneller
//--------------------------------------------
if (done) return; done = true;
//--------------------------------------------
// Nur zur Demo: Anzeige der Position
//--------------------------------------------
alert ('Geolocation meldete:\nLon: ' +
position.coords.longitude +
'\nLat: ' +
position.coords.latitude);
//--------------------------------------------
// Gewuenschte Zoomstufe
//--------------------------------------------
var geoLocationZoom = 14;
//--------------------------------------------
// Konvertiere Koordinaten und PanZoom
//--------------------------------------------
map.setCenter (new OpenLayers.LonLat
(position.coords.longitude, position.coords.latitude).
transform(new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()), geoLocationZoom);
},
//----------------------------------------------------
// Keine Geolocation gefunden
//----------------------------------------------------
function (error) {
//--------------------------------------------
// Dumm gelaufen, Timeout war schneller
//--------------------------------------------
if (done) return; done = true;
//--------------------------------------------
// Zeige Grund des Malheurs
//--------------------------------------------
alert ('Geolocation gescheitert (' + error.code + '):\n"' + error.message + '"');
//--------------------------------------------
// Defaultdarstellung
//--------------------------------------------
zoomToDefault();
},
//----------------------------------------------------
// Parameter, siehe z.B.:
// https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
//----------------------------------------------------
{enableHighAccuracy: true, maximumAge: 1000}
);
//------------------------------------------------------------
// Wird die Rueckfrage des browsers verneint,
// so werden leider weder die success noch die failure
// Funktion aufgerufen.
// Damit die Karte nicht haengt, starte ein Timeout.
// (20000 = 20000 Millisekunden = 20 Sekunden)
//------------------------------------------------------------
setTimeout(function(){
//----------------------------------------------------
// Gut gelaufen, der Geolocator war schneller.
//----------------------------------------------------
if (done) return; done = true;
//----------------------------------------------------
// Nur zur Demo: Anzeige des Malheurs
//----------------------------------------------------
alert ('Timeout...');
//----------------------------------------------------
// Defaultdarstellung
//----------------------------------------------------
zoomToDefault();
}, 20000);
} else {
//------------------------------------------------------------
// Ich aaaaabe gar kein geolocation-Objekt!
//------------------------------------------------------------
alert ('navigator.geolocation nicht verfuegbar.');
//------------------------------------------------------------
// Defaultdarstellung
//------------------------------------------------------------
map.zoomToExtent(bounds);
}
}
sollte funktionieren, wenn du dies zwischen folgendem einbaust:
//----------------------------------------------------------------------------
// Kartenlayer
//----------------------------------------------------------------------------
map.addLayer (new OpenLayers.Layer.OSM.Mapnik('Mapnik'));
//****************************************************************************
//** POI-Editor-Layer
//****************************************************************************
viel erfolg
Danke! Hat geklappt!
Christian