Angularjs谷歌地图API绘制折线

时间:2016-06-11 10:08:46

标签: angularjs google-maps google-maps-api-3 angular-google-maps

以下代码片段为我提供了输出(基本上每次点击都会添加一个新标记,我会获取它的lat和long值):

0: Latitude: 40.207196906764054 Longitude: -99.68994140625
1: Latitude: 40.202477129519124 Longitude: -99.60823059082031

代码段:

$scope.map.markers.push(marker);
// console.log($scope.map.markers);

for (var item in $scope.map.markers) {
  console.log(item +': '+ "Latitude: " +    $scope.map.markers[item].coords.latitude + " " + "Longitude: " + $scope.map.markers[item].coords.longitude);
}

要绘制折线,我需要采用以下格式的数组:

var flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];

我基本上想要沿着这些标记绘制线条。如何在for循环中构造这样的结构来添加这些lat和long值,我可以将它们提供给Polilines的'Path'变量?

1 个答案:

答案 0 :(得分:2)

你应该能够循环通过标记并将它们的坐标添加到一个空数组中(假设你显示的循环工作):

var myCoordinates = [];
for (var item in $scope.map.markers) {
     myCoordinates.push({lat: $scope.map.markers[item].coords.latitude, lng: $scope.map.markers[item].coords.longitude});
}

然后使用myCoordinates数组,就像使用flightPlanCoordinates创建折线一样,例如:

var myPolyline = new google.maps.Polyline({
    path: myCoordinates,
    geodesic: true,
    strokeColor: '#FF0000',
    strokeOpacity: 1.0,
    strokeWeight: 2,
    map: map
});