Google Maps API v3自定义标记未显示

时间:2012-04-18 00:16:26

标签: javascript google-maps google-maps-markers directions

我想在我的网站上显示与谷歌地图中转方向类似的内容,因此我尝试在同一地图上显示多种不同类型的路线。例如,我想展示一个旅行,你步行到公共汽车,乘公共汽车到其他街道,然后步行到你的最终目的地。

为此,我尝试使用自定义标记在同一地图上获取多个路线请求的结果。我有一个名为change_map()的函数,它应该在地图上显示其中一个行程的信息。

我有两个问题:

  1. 标记未显示在地图上。
  2. 当未记录fitbounds时,我得到超出堆栈限制的错误
  3. 我是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 个答案:

答案 0 :(得分:1)

我认为问题在于你将一个对象作为参数传递给循环中的LatLng构造函数

更改

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

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

希望能解决它。