Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
263 views
in Technique[技术] by (71.8m points)

javascript - Openlayers - Add control: zoom/pan to current location

I'm trying to add an ol.control button to the map that zooms/pans to my current location. I've extracted my location coordinates with:

var geolocation = new ol.Geolocation({
        projection: map.getView().getProjection(),
        tracking: true
    });
geolocation.getPosition(); //this shows the coordinates (e.g.[591374.2306195896, 6746799.171545821])

Now I want to use these as input for a "zoom to" ol.control button. As one would use ol.control.ZoomToExtent, which creates a control button. e.g.:

map.addControl(zoomToExtentControl);

zoomToExtentControl = new ol.control.ZoomToExtent({
  extent: [-1013450.0281739295, 3594671.9021477713, 6578887.117336057, 10110775.689402476],
  className: 'custom-zoom-extent',
  label: '??'
});

Please help me out :-)

question from:https://stackoverflow.com/questions/65923306/openlayers-add-control-zoom-pan-to-current-location

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The extent array used for the ZoomToExtent can be dynamically updated with the accuracy extent from the geolocation

var geolocation = new ol.Geolocation({
        projection: map.getView().getProjection(),
        tracking: true
    });

var extent = ol.extent.createEmpty();

geolocation.on('change:accuracyGeometry', function() {
    geolocation.getAccuracyGeometry().getExtent(extent);
});

zoomToExtentControl = new ol.control.ZoomToExtent({
  extent: extent,
  className: 'custom-zoom-extent',
  label: '??'
});

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...