You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
Pages: 1
#1 2015-12-03 15:11:54
- brogo
- Member
- From: 54,11 +-1°
- Registered: 2009-06-02
- Posts: 553
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
Offline
#2 2015-12-03 21:18:09
- reneman
- Member

- From: Mainz
- Registered: 2012-10-13
- Posts: 1,106
- Website
Re: Openlayers: Geolocation
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
Last edited by reneman (2015-12-03 21:19:01)
» Check the Monuments! «
Viele der als historic=monument erfassten Objekte sind in Wirklichkeit kein Monument. Sie wurden mangels passender Tags oder aus Unkenntnis als Monument erfaßt. Diese Karte CheckTheMonuments will bei der Korrektur unterstützen.
Offline
#3 2015-12-04 11:34:02
- brogo
- Member
- From: 54,11 +-1°
- Registered: 2009-06-02
- Posts: 553
Re: Openlayers: Geolocation
sollte funktionieren, wenn du dies zwischen folgendem einbaust:
Danke! Hat geklappt!
Christian
Offline
Pages: 1