運行以下代碼時出現兩個錯誤: 1. Uncaught InvalidValueError:setPosition的無效參數:[object Object] 2.未捕獲的TypeError:無法調用方法'contains'未定義無法使用Google Maps API v3計算道路距離
編輯:我可以使用相同的標記標籤創建多個標記,如下所示?
基本上試圖標記添加到一組經緯度並計算距離一個共同點:
<script type="text/javascript">
var map;
var mapOptions;
var lat = [33, 34, 35, 36];
var lon = [-84, -86, -89, -100];
var src = [30, -90];
var dist = [];
var marker;
var directionsService = new google.maps.DirectionsService();
var directionsRequest;
var directionsRenderer;
var markerPoints = [{"location": new google.maps.LatLng(lat[0], lon[0])},
{"location": new google.maps.LatLng(lat[1], lon[1])},
{"location": new google.maps.LatLng(lat[2], lon[2])},
{"location": new google.maps.LatLng(lat[3], lon[3])}];
function initialize() {
directionsRenderer = new google.maps.DirectionsRenderer();
mapOptions = {
center: new google.maps.LatLng(33.75, -84.39),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
directionsRenderer.setMap(map);
marker = new google.maps.Marker({
position: new google.maps.LatLng(src[0], src[1]),
//icon: 'http://maps.google.com/mapfiles/marker.png',
map: map
});
for(var iter = 0; iter < lat.length; iter++)
{
placeMarker(iter);
getDistances(iter);
}
}
function placeMarker(iter)
{
marker = new google.maps.Marker({
position: markerPoints[iter],
//icon: 'http://maps.google.com/mapfiles/marker_green.png',
map: map
});
}
function getDistances(iter)
{
directionsRequest = {
origin: new google.maps.LatLng(src[0], src[1]),
destination: markerPoints[iter],
travelMode: google.maps.TravelMode.DRIVING,
};
directionsService.route(directionsRequest, function(response, status){
if(status == google.maps.DirectionsStatus.OK)
{
dist.push(response.routes[0].legs[0].distance);
}
else
{
alert("Impossible");
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
檢查此鏈接http://christianvarga.com/2010/12/how-to-calculate-driving-distance-between-2-locations-with-google-maps-api/ – shivam
@magExp很好找。我其實不想繪製方向,我只是想把標記放在地圖上。 – codepk