Witam serdecznie.
Otóż jestem początkującym programistą w trakcie nauki. W chwili obecnej bawię się geolokalizacją ale nie do końca mi wychodzi. Napisałem prosty skrypt, który przedstawia moją długość i szerokość geograficzną, a także mierzy odległość od mojej lokalizacji do głównej siedziby Helionu (uczę się przy pomocy książki tegoż wydawnictwa).
Nie mniej jednak w dalszych częściach książki to zadanie się rozwija o przedstawienie mapy ale niestety pomimo dobrze opisanej zasady działania moja mapa się nie pokazuje i nie wyświetlają się żadne błędy i nie wiem co dalej z tym zrobić. Wiem że temat był już poruszany ale niestety nie pomógł mi zbytnio.
Poniżej przedstawiam mój kod w JavaSctript, który powinien działać, a nie działa :(
Proszę o pomoc
window.onload = getMyLocation; //Funkcja która pyta użytkownika o pozwolenie na włączenie lokalizacji function getMyLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(displayLocation, displayError); } else { alert("Oj! Brak wspracia dla geolokalizacji."); } } //Funkcja która wyświetla błędy podczas próby lokalizowania function displayError(error) { var errorTypes = { 0: "Nieznany błąd", 1: "Dostęp zabroniony przez użytkownika", 2: "Położenie jest niedostępne", 3: "Zbyt długi czas oczekiwania" }; var errorMessage = errorTypes[error.code]; if (error.code === 0 || error.code === 2) { errorMessage = errorMessage + "" + error.message; } var div = document.getElementById("location"); div.innerHTML = errorMessage; } //Określam długość i szerokość geograficzną siedziby HELIONU var ourCoords = { latitude: 50.288962, //szerokość geograficzna longitude: 18.659609 //długość geograficzna }; //Funkcja obliczająca odległość między punketam A i punktem B (w tym przypadku odległość między mną, a siedzibą HELIONU) //startCoords - jest to punkt startowy //destCoords - jest to punkt ko�cowy function computeDistance(startCoords, destCoords) { var startLatRads = degreesToRadians(startCoords.latitude); var startLongRads = degreesToRadians(startCoords.longitude); var destLatRads = degreesToRadians(destCoords.latitude); var destLongRads = degreesToRadians(destCoords.longitude); var Radius = 6371; //Promień Ziemi w kilometrach var distance = Math.acos(Math.sin(startLatRads) * Math.sin(destLatRads) + Math.cos(startLatRads) * Math.cos(destLatRads) * Math.cos(startLongRads - destLongRads)) * Radius; return distance; } function degreesToRadians(degrees) { var radians = (degrees * Math.PI) / 180; return radians; } //Tutaj zaczyna się tworzenie mapy var map; var google; function showMap(coords) { var googleLatAndLong = new google.maps.LatLng(coords.latitude, coords.longitude); // przekazuje dlugość i szerokość geograficzną do google maps var mapOptions = { zoom: 10, // ustawiam zoom mapy center: googleLatAndLong, // wyśrodkowanie mapy w mojej okolicy mapTypeId: google.maps.MapTypeId.ROADMAP //ustawiam typ mapy w tym przypadku mapa drogowa (można skorzystać także z: SATELLITE i HYBRID) }; var mapDiv = document.getElementById("map"); map = new google.maps.Map(mapDiv, mapOptions); } //Funkcja określająca naszą pozycję function displayLocation(position) { var latitude = position.coords.latitude;//szerokość geograficzna var longitude = position.coords.longitude;//długość geograficzna //moja lokalizacja var div = document.getElementById("location"); div.innerHTML = "Jesteś na szerokości " + latitude + " i długości " + longitude; //Dystans do HELIONU var km = computeDistance(position.coords, ourCoords); var distance = document.getElementById("distance"); distance.innerHTML = "Jesteś " + km + " km od siedziby Helionu"; showMap(position.coords); }
Tak wygląda mój kod w HTML5 który startuje moją stronkę:
<!DOCTYPE html> <html> <head> <title>Siedziba helion - lokalizacja</title> <script src="lokalizator.js"></script> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAcM8lRS03fxef7FnItePwFbeAZtmnSAyY"></script> </head> <body> <div id="location"> <!--Tu znajudje się moja lokalizacja --> </div> <div id="distance"> <!--Tu znajduje się odległość od siedziby Helionu--> </div> <div id="map"> <!--Tutaj znajduje się mapa--> </div> </body> </html>