HTML-код
<!DOCTYPE html>
<html>
<head>
<title>Geolocation</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
#map {
height: 50%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script type="text/javascript">
var latitude;
var longitude;
function showLocation(position)
{
latitude = position.coords.latitude;
longitude= position.coords.longitude;
alert("Latitude:"+position.coords.latitude+ "Longitude: " + position.coords.longitude);
}
function errorHandler(err)
{
if(err.code==1)
{
alert("error: Access is denied!");
}
else if(err.code==2)
{
alert("error: Position is unavailable!");
}
}
function getLocation()
{
if(navigator.geolocation)
{
var options={timeout:60000};
navigator.geolocation.getCurrentPosition(showLocation,errorHandler,options);
}
else
{ alert("sorry, browser does not support geolocation!");}
}
</script>
</head>
<body>
<div id="map"></div>
<script>
var map, infoWindow;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 6
});
infoWindow = new google.maps.InfoWindow;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
infoWindow.setPosition(pos);
infoWindow.setContent('Location found.');
infoWindow.open(map);
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
handleLocationError(false, infoWindow, map.getCenter());
}
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
infoWindow.open(map);
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDm1MhIYREunq5Kg2wCLcSO2JLkIFdR1Ms&callback=initMap">
</script>
<form action="geolocator.php"> <input type="button" onclick="getLocation()" method="get" value="Get Location"/> </form>
</body>
</html>
PHP-код
<?php
include 'geolocation.html';
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'xyz');
define('DB_DATABASE', 'minorproj');
$conn = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
$latitude = $_GET["latitude"];
$longitude = $_GET["longitude"];
$sql= "INSERT INTO geo (lat,longi) VALUES('$latitude','$longitude')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
?>
На самом деле я могу получить значения широты и долготы как в окне предупреждения, так и нет другой ошибки, просто проблема в том, что я не могу получить значения в моей базе данных.
Я думаю, что я использую какой-то неправильный запрос или что-то пропустил в моем коде
.
Заранее спасибо
Задача ещё не решена.
Других решений пока нет …