Я изучаю код с кодировкой для чайников Никила Абрахама. В книге есть проект с кодом, включенным для разработки приложения для ресторана, чтобы отправить предупреждение клиенту в течение 5-10 минут ходьбы от ресторана с купонным для ресторана при нажатии на кнопку регистрации ,Проблема с оповещением - Геолокация с использованием формулы расстояния от раковины
У меня есть весь код, используя html, css и javascript через codepen, и по какой-то причине предупреждение не появится.
Я исследовал, где я, возможно, ошибаюсь, но я действительно застрял.
Вот код:
код HTML:
<head>
<title>McDuck's App</title>
</head>
<body>
<h1>McDuck's Local Offers</h1>
<button onclick="getLocation()">CheckIn</button>
<div id="geodisplay"/>
<div id="effect"/>
</body>
устанавливаемыми сотовыми:
body {
text-align: center;
background: white;
}
h1, h2, h3, p {
font-family: Sans-Serif;
color: black;
}
p {
font-size: 1em;
}
Javascript:
function getLocation() {
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showLocation);
}
}
// магазин местоположение
function showLocation(position){
var mcduckslat=53.510207;
var mcduckslon=-6.399289;
// текущее местоположение
var currentpositionlat=position.coords.latitude;
var currentpositionlon=position.coords.longitude;
// вычислить расстояние между текущим местоположением и расположением McDuck в
var distance=getDistanceFromLatLonInMiles(mcduckslat, mcduckslon,
currentpositionlat, currentpositionlon);
//displays the locaton using .inner.HTML property and the lat & long
coordinates from your current location
document.getElementById("geodisplay").inner.HTML="Latitude: " +
currentpositionlat + "<br>Longitude: " + currentpositionlon;
}
//haversine distance formula
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
var R = 6371; //Radius of earth in km
var dLat = deg2rad(lat2-lat1);
var dLon = deg2rad(lon2-lon1);
var a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) *
Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a),
Math.sqrt(1-a));
var d = R * c * 0.372823; //Distance in miles
return d;
}
function deg2rad(deg) {
return deg * (Math.PI/180);
}
alert(distance);
if (distance < 0.5) {
alert("You get a free meal");
}
else {
alert("Thanks for checking in!");
}
Ссылка на copepen http://codepen.io/Saharalara/pen/Grxmmj
Помог ли мой ответ? Нажмите ссылку в верхней части моего ответа, чтобы увидеть, как работает решение. – taylorsabell