Карта Api Google с указаниями с использованием javascript

#javascript #google-maps #google-maps-api-3 #directions

#javascript #google-карты #google-maps-api-3 #указания

Вопрос:

   (function(){
window.onload =function(){
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();

directionsDisplay = new google.maps.DirectionsRenderer();
    document.getElementById("lat").style.visibility = "hidden";
    document.getElementById("longi").style.visibility = "hidden";
    document.getElementById("number").style.visibility = "hidden";
    document.getElementById("addressone").style.visibility = "hidden";
    document.getElementById("city").style.visibility = "hidden";
    document.getElementById("countie").style.visibility = "hidden";
    document.getElementById("postcode").style.visibility = "hidden";
    var mapDiv = document.getElementById('map');
    var latitude = document.frmOne.lat.value;
    var longitude = document.frmOne.longi.value;
    var number = document.frmOne.number.value;
    var addressone = document.frmOne.addressone.value;
    var city = document.frmOne.city.value;
    var countie = document.frmOne.countie.value;
    var postcode = document.frmOne.postcode.value;
    var latlng = new google.maps.LatLng(latitude,longitude);
    var options ={
        center:latlng,
        zoom:18,
        mapTypeId:google.maps.MapTypeId.ROADMAP

    };

    var map= new google.maps.Map(document.getElementById('map'),options);
     directionsDisplay.setMap(map);

      var marker = new google.maps.Marker({
    position: new google.maps.LatLng(latitude,longitude),
  map: map,
  title: 'Click me'
   });

    var infowindow = new google.maps.InfoWindow({
  content: number " " addressone "<br>" city "<br>" countie "<br>" postcode
   });

    google.maps.event.addListener(marker, 'click', function() {
  // Calling the open method of the infoWindow
  infowindow.open(map, marker);
});


 var start = (latitude,longitude);
 var end = "51.403650,-1.323252";
 var request = {
origin:start,
destination:end,
travelMode: google.maps.TravelMode.DRIVING
  };
    directionsService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
  directionsDisplay.setDirections(result);
    }
    });



    };
   })();
  

Долгота и широта генерируются с помощью php и работают идеально. Карта загружается, включая маркер, но направления не отображаются.

Я не могу найти хороший учебник по указаниям, поэтому, если кто-нибудь знает об этом, это также поможет, я знаю, что мой код не очень аккуратный, но я не очень хорошо разбираюсь в Java script.

Ответ №1:

Вы скопировали пример из их собственной ссылки, на мой взгляд, это нормально. Однако они используют названия мест, а вы используете латинские координаты. Поэтому вам нужно использовать реальные объекты latlng вместо просто «51.403650, -1.323252» и (широта, долгота).

 var request = {
  origin:new google.maps.LatLng(latitude,longitude),
  destination:new google.maps.LatLng(51.403650,-1.323252),
  travelMode: google.maps.TravelMode.DRIVING
};
  

Комментарии:

1. ЧУВАК, КОТОРЫЙ ЭТО ИСПРАВИЛ, я ЛЮБЛЮ ТЕБЯ, ха-ха: P