openlayer 定位
时间: 2023-11-23 08:56:24 浏览: 128
人员定位OpenLayer
3星 · 编辑精心推荐
以下是使用Openlayers获取浏览器当前用户的经纬度位置并定位到对应位置的示例代码:
```javascript
import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import {fromLonLat} from 'ol/proj';
import Feature from 'ol/Feature';
import Point from 'ol/geom/Point';
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
import {OSM, Vector as VectorSource} from 'ol/source';
// 创建地图
const map = new Map({
target: 'map',
layers: [
new TileLayer({
source: new OSM()
})
],
view: new View({
center: [0, 0],
zoom: 2
})
});
// 获取用户位置
navigator.geolocation.getCurrentPosition(function(pos) {
const coords = fromLonLat([pos.coords.longitude, pos.coords.latitude]);
const accuracy = new Feature({
geometry: new Point(coords)
}); const positionLayer = new VectorLayer({
source: new VectorSource({
features: [accuracy]
})
});
map.addLayer(positionLayer);
map.getView().fit(positionLayer.getSource().getExtent(), {
maxZoom: 18,
duration: 500
});
});
```
上述代码中,我们首先创建了一个地图对象,并设置了地图的中心点和缩放级别。然后,我们使用`navigator.geolocation.getCurrentPosition()`方法获取用户的位置信息,并将其转换为地图上的坐标。接着,我们创建了一个`Feature`对象,将用户的位置信息添加到`VectorSource`中,并将其添加到地图上。最后,我们使用`map.getView().fit()`方法将地图的中心点移动到用户的位置,并设置了最大缩放级别和动画时间。
阅读全文