2012-04-18 3 views
0

Я хочу показать на своем веб-сайте что-то похожее на маршруты транзита Google Maps, поэтому я пытаюсь отобразить несколько разных типов направлений на одной карте. Для exmaple, я хочу показать поездку, где вы идете к автобусу, сесть на автобус на другую улицу, а затем дойти до конечного пункта назначения.Пользовательские маркеры API Карт Google v3 не отображаются

Для этого я пытаюсь получить результат запроса нескольких направлений на одной карте с пользовательскими маркерами. У меня есть функция change_map(), которая должна отображать информацию для одной из этих поездок на карте.

У меня есть 2 проблемы:

  1. маркеры не отображаются на карте.
  2. когда fitbounds ООН-комментировал, я получаю предел стека превысил ошибку

Я новичок в JavaScript, извините, если мой код отстой и спасибо за вашу помощь!

var trip_map 

    function renderDirections(result) { 
    var directionsDisplay = new google.maps.DirectionsRenderer; 
    directionsDisplay.setMap(trip_map); 
    directionsDisplay.suppressMarkers = true; 
    directionsDisplay.setDirections(result); 
    } 

    function requestDirections(start, end) { 
    var directionsService = new google.maps.DirectionsService; 
    directionsService.route({ 
     origin: start, 
     destination: end, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }, function(result) { 
     renderDirections(result); 
    }); 
    } 

    function change_map(pk) { 
     var myOptions = { 
     center: new google.maps.LatLng(-34.397, 150.644), 
     zoom: 8, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     trip_map = new google.maps.Map(document.getElementById("trip_map"), 
            myOptions); 

     var bounds = new google.maps.LatLngBounds();  
     for (var j = 0; j < latlngpairs.length; j++) { 
     var GPS = new google.maps.LatLng({lat:latlngpairs[0], 
              lng:latlngpairs[1]}); 
      var end_marker = new google.maps.Marker({position: GPS, 
                map: trip_map, 
                title: "Hello World!"}); 
      bounds.extend(end_GPS); 
     } 
     requestDirections(parts[j], parts[j+1]); 
    } 
    //trip_map.fitBounds(bounds); 
    } 

ответ

1

Я считаю, что проблема заключается в том, что вы передаете один объект в качестве аргумента конструктору LatLng внутри цикла

Смените

var GPS = new google.maps.LatLng({lat:latlngpairs[0],lng:latlngpairs[1]}); 

с

var GPS = new google.maps.LatLng(latlngpairs[0],latlngpairs[1]); 

Надежда который решает его.

+0

Большое спасибо! Это устранило проблему с появлением маркеров! – jmetz

+0

Отлично, вы можете отметить это как ответ. – willvv

Смежные вопросы