2017-04-08 1 views
0

이 코드를 사용해 보았지만 폴리 라인에는 문제가 없었기 때문에 마커를 연결하는 폴리 라인을 얻을 수 없었습니다.
폴리 라인으로 여러 마커를 연결해야합니다. 다른 코드도 환영합니다.폴리 라인으로 여러 마커 연결

var locations = []; 
// call php array 
var latitude = <?php echo json_encode($latitude); ?>; 
var longitude = <?php echo json_encode($longitude); ?>; 
for(var i=0;i<20;i++){ 
locations.push(["current",latitude[i], longitude[i]]); 
} 

var marker; 
      function initMap() { 
      var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 5, 
      center: new google.maps.LatLng(12.289774217827633, 76.30976921188685) 
      }); 

var flightPath = new google.maps.Polyline({ 
              path: locations, 
              geodesic: true, 
              strokeColor: '#000000', 
              strokeOpacity: 1.0, 
              strokeWeight: 3 
    }); 


flightPath.setMap(map); 
var infowindow = new google.maps.InfoWindow(); 
var marker, i; 

    for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
     }); 

     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
     })(marker, i)); 
    } 
} 

답변

1

flightPath는 배열로 호출되어야한다.

이 업데이트 된 코드를 사용해보십시오.

var locations = [ 

    ]; 

// call php array 
var latitude = <?php echo json_encode($latitude); ?>; 
var longitude = <?php echo json_encode($longitude); ?>; 
for(var i=0;i<20;i++){ 
locations.push(["current",latitude[i], longitude[i]]); 
} 
var marker; 
    function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 5, 
     center: new google.maps.LatLng(12.289774217827633, 76.30976921188685) 
     }); 


// locations.push(["current",test2, test3]); 
var infowindow = new google.maps.InfoWindow(); 

var marker, i; 
var flightPlanCoordinates = []; 

    for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 
flightPlanCoordinates.push(marker.getPosition()); 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
     } 
    })(marker, i)); 
    } 
    var flightPath = new google.maps.Polyline({ 
    map: map, 
    path: flightPlanCoordinates, 
    strokeColor: "#ff0000", 

    strokeOpacity: 1.0, 
    strokeWeight: 2 
    }); 
} 
+1

위대한 ... 괜찮 았어. 대단히 감사합니다. –

관련 문제