Openlayers: Geolocation

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

[1] http://www.netzwolf.info/ol2/poi_editor_anleitung

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