从外部按钮或链接获取当前位置单击GeoLocation Openlayers3的方法如下:
<button>
或<a>
标签来创建按钮或链接。navigator.geolocation.getCurrentPosition()
方法来获取当前位置的地理坐标。该方法会弹出一个对话框,询问用户是否允许获取位置信息。new ol.Map()
创建地图对象,使用new ol.View()
创建视图对象,并使用new ol.layer.Tile()
创建图层对象。ol.proj.fromLonLat()
方法将获取到的经纬度转换为地图上的坐标。然后,可以使用new ol.Feature()
创建要素对象,并使用new ol.geom.Point()
创建点几何对象。new ol.layer.Vector()
创建矢量图层对象,并使用getSource().addFeature()
方法将要素对象添加到图层中。以下是一个示例代码:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
width: 100%;
}
</style>
<script src="https://openlayers.org/en/v4.6.5/build/ol.js"></script>
</head>
<body>
<button onclick="getLocation()">获取当前位置</button>
<div id="map" class="map"></div>
<script>
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
alert("浏览器不支持地理定位。");
}
}
function showPosition(position) {
var longitude = position.coords.longitude;
var latitude = position.coords.latitude;
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: new ol.source.Vector({
features: [
new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([longitude, latitude]))
})
]
})
})
],
view: new ol.View({
center: ol.proj.fromLonLat([longitude, latitude]),
zoom: 10
})
});
}
</script>
</body>
</html>
这个示例代码中,点击按钮后会获取当前位置的地理坐标,并在地图上显示一个点标记,表示当前位置。使用的是Openlayers3库来显示地图和处理地理坐标。
领取专属 10元无门槛券
手把手带您无忧上云