Эдди, в настоящее время вы планируете назначить переменную javascript переменной PHP, что не является правильным способом сделать что-то одно, как на стороне клиента, так и на стороне сервера. Ссылка.
Я изменил ваш код, чтобы найти расстояние между местоположением пользователя и местоположением продавца.
<?php
$row_Merchant = [
'latitude' => 47.683277,
'longitude' => 3.210482
]; //Change this with database value
?>
<script type = 'text/javascript'>
var latitude = "";
var longitude = "";
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180;
var radlat2 = Math.PI * lat2/180;
var radlon1 = Math.PI * lon1/180;
var radlon2 = Math.PI * lon2/180;
var theta = lon1-lon2;
var radtheta = Math.PI * theta/180;
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist);
dist = dist * 180/Math.PI;
dist = dist * 60 * 1.1515;
if (unit=="K") { dist = dist * 1.609344; }
if (unit=="N") { dist = dist * 0.8684; }
return dist;
}
function showPosition(){
console.log('hhhh');
if(navigator.geolocation) {
console.log('hhhh');
navigator.geolocation.getCurrentPosition(function(position){
latitude = position.coords.latitude;
longitude = position.coords.longitude;
console.log(latitude+','+longitude+','+ merch_latitude+','+ merch_longitude);
dist = distance(latitude, longitude, merch_latitude, merch_longitude, 'K');
console.log(dist); //final distance present in dist variable
});
} else {
alert("Sorry, your browser does not support HTML5 geolocation.");
}
}
var merch_longitude = <?php echo $row_Merchant['longitude']; ?>;
var merch_latitude = <?php echo $row_Merchant['latitude']; ?>;
showPosition();
</script>
В приведенном выше коде вы передадите значение базы данных в $row_Merchant в настоящее время жестко запрограммирован.Это значение будет установлено в javascript, и, используя javascript, мы также получаем координаты пользователя.Используя эти координаты, наша функция javascript будет вычислять расстояние.
Функция расстояния принимает 5 параметров lat1, long1, lat2, long2, unit.
По умолчанию в качестве единицы измерения используется мили, вы можете передать Kдля КМ и N для НМ.