Попытка получить динамическое местоположение (широта и долгота), чтобы использовать его в Places api - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать небольшой проект, в котором мы получаем конкретные близлежащие места (школы, больницы, кафе и т. Д.) Радиусом 5 км, нажимая переключатель. Здесь я пытаюсь использовать геолокацию для получения динамического местоположения ( широта и долгота), чтобы я мог получить текущее местоположение пользователя, где бы оно ни использовалось. Что происходит, карта не загружается при загрузке страницы, в то время как первая радиокнопка уже проверена, но работает нормально, когда я переключаюсь на другое радио кнопки.

Я не специалист по JavaScript.

Ниже мой HTML-код

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Google Maps</title>
    <style>
       #map {
        height: 100%;
        width: 100%;
        }
       #box{
        height:500px;
        width:80%;
        margin-left:10%;
        margin-right:10%;
        border:2px solid black;
       }
       h1{
        text-align:center;
        font-family:sans-serif;
       }
       form {
        text-align: center;
       }
    </style>
  </head>
  <body>
    <h1>Google Maps</h1>
    <form>
      <input type="radio" id="school" name="places" value="School" checked onClick="load();">Schools
      <input type="radio" id="hospital" name="places" value="Hospital" onClick="load();">Hospitals
      <input type="radio" id="cafe" name="places" value="Hotel" onClick="load();">Cafes
      <input type="radio" id="atm" name="places" value="atm" onClick="load();">ATM's
    </form>
    <br>
    <div id="box">
      <div id="map"></div>
    </div>
    <script type = "text/javascript" src="maps.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVOCb1nOuIrbnvnTYIYTKMqs2y5ecuMi8&signed_in=true&libraries=places&callback=load" async defer></script>
  </body>
</html>

Вот мой код JavaScript

var map;
var infowindow;
var myLat;
var myLong;
x = navigator.geolocation;
x. getCurrentPosition(success);

function success(position){

  myLat = position.coords.latitude;
  myLong = position.coords.longitude;
}

function load() {
  //var hyderabad = {lat: 17.46724, lng: 78.53591};
  var hyderabad = new google.maps.LatLng(myLat , myLong);

  map = new google.maps.Map(document.getElementById('map'), {
    center: hyderabad,
    zoom: 12
  });

  infowindow = new google.maps.InfoWindow();
  var service = new google.maps.places.PlacesService(map);
  var place;
  if (document.getElementById('school').checked) {
  place = "school"
  }
  else if (document.getElementById('hospital').checked) {
  place = "hospital"
  }
  else if (document.getElementById('cafe').checked) {
  place = "cafe"
  }
  else if (document.getElementById('atm').checked) {
  place = "atm"
  }

  service.nearbySearch({
    location: hyderabad,
    radius: 5000,
    type: [place]
  }, callback);
}

function callback(results, status) {
  if (status === google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

function createMarker(place) {
  var placeLoc = place.geometry.location;
  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location
  });

  google.maps.event.addListener(marker, 'mouseover', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...