Io per geolocalizzare la posizione corrente di chi si connette avevo trovato questo semplice script:
codice:
var map;
var mapLng = "";
var mapLat = "";
var mapDefaultZoom = 10;
$(document).ready(function() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(mia_posizione);
} else {
alert('La geo-localizzazione NON è possibile');
}
});
function mia_posizione(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
$("#lat").text("latitudine: " + lat);
$("#long").text("longitudine: " + long);
mapLng = long;
mapLat = lat;
initialize_map(mapLng, mapLat);
add_map_point(mapLat, mapLng)
}
function initialize_map(mapLng, mapLat) {
map = new ol.Map({
target: "map",
layers: [
new ol.layer.Tile({
source: new ol.source.OSM({
url: "https://a.tile.openstreetmap.org/{z}/{x}/{y}.png",
crossOrigin: null
})
})
],
view: new ol.View({
center: ol.proj.fromLonLat([mapLng, mapLat]),
zoom: mapDefaultZoom
})
});
}
function add_map_point(lat, lng, boxLat, boxLng) {
if (boxLat !== undefined && boxLng !== undefined) {
map.center = ol.proj.fromLonLat([boxLng, boxLat]);
}
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([parseFloat(lng), parseFloat(lat)], 'EPSG:4326', 'EPSG:3857')),
})]
}),
style: new ol.style.Style({
image: new ol.style.Icon({
anchor: [0.5, 0.5],
anchorXUnits: "fraction",
anchorYUnits: "fraction",
src: "https://upload.wikimedia.org/wikipedia/commons/e/ec/RedDot.svg"
})
})
});
map.addLayer(vectorLayer);
}
e una semplice pagina html, php così creata
codice:
<!DOCTYPE html><html lang="en">
<head>
<meta charset="utf-8">
<title>Test Mappa</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="../script/jquery-2.1.4.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css">
<script src="https://openlayers.org/en/v4.6.5/build/ol.js" type="text/javascript"></script>
<script src="miapos.js" type="text/javascript"></script>
</head>
<body>
<p id="lat"></p>
<p id="long"></p>
<div id="map" style="width: 100vw; height: 100vh;"></div>
</body>
</html>
Se hai la posizione attiva e acconsenti all' utilizzo ti geolocalizza correttamente!