【发布时间】:2016-01-29 17:29:50
【问题描述】:
关于如何在标记之间绘制折线的任何想法,其中 lat lng 坐标在数组中。
数组位置包含坐标 Home 和其他位置。我可以使用数组中的坐标来放置标记,接下来我需要做的是在 Home -> Location 1、Home -> Location 2 之间做折线……等等。
--------------------------
<script
var locations =[
//Starting Point is "Home", and links to other locations"//
['Home', 37.774930, -122.419416],
['Location-1', 35.689487, 139.691706],
['Location-2', 48.856614, 2.352222],
['Location-3', -33.867487, 151.206990]
]
function initMap() {
var myLatLng = {lat: 12.363, lng: -131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: {lat:0,lng:0}
});
var markers = new Array();
// Add the markers and infowindows to the map
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
title:locations[i][0],
map: map
})
}
if (i > 0){
var startpoint = {"lat": locations[0][1], "long": locations[0][2]};
var endpoint = {"lat": locations[i][1], "long": locations[i][2]};
var locationlinks = [
new google.maps.LatLng(startpoint.lat, startpoint.long),
new google.maps.LatLng(endpoint.lat, endpoint.long)
];
var sitepath = new google.maps.Polyline({
path: locationlinks,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
};
sitepath.setMap(map);
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBX8Q6FDpU0K9nkVCN7PpxSFybF-2FQem0&callback=initMap"></script>
作为测试更改,特定数组对象的位置 [i][1]、[i][2] 有效,因此看起来可能不适用于数组对象的变量。
var endpoint = {"lat":locations[2][1], "long":locations[2][2]};
【问题讨论】:
-
发布的代码使用的是 Google Maps Javascript API v3 而不是 v2,已更改标签。
-
当你的代码退出循环时
i= 4.var endpoint = {"lat": locations[i][1], "long": locations[i][2]};没有定义。使用locations.length-1。 -
相关问题; create elevation chart from markers and a HUB(你想要折线,而不是海拔图)
-
所以像这样 - var endpoint = {"lat": locations[locations.length-1][1], "long":locations[locations.length-1][2]}; ?
-
是的。将
if i>0块内的i设置为i=locations.length-1works for me as well
标签: javascript google-maps-api-3