javascript
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: ol.proj.fromLonLat([0, 0]),
zoom: 2
})
});
3、获取用户位置
使用浏览器的Geolocation API获取用户的位置。
javascript
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var positionCoords = ol.proj.fromLonLat([longitude, latitude]);
// 在地图上显示位置
var positionMarker = new ol.Feature({
geometry: new ol.geom.Point(positionCoords)
});
var vectorSource = new ol.source.Vector({
features: [positionMarker]
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
// 将地图中心移动到用户位置
map.getView().setCenter(positionCoords);
map.getView().setZoom(15);
}, function(error) {
console.error('Error getting location:', error);
});
} else {
console.error('Geolocation is not supported by this browser.');
}
4、实时更新位置
为了实现实时定位,可以使用`watchPosition`方法来持续监听位置变化。
javascript
var watchId = navigator.geolocation.watchPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var positionCoords = ol.proj.fromLonLat([longitude, latitude]);