Javascript 对于回路内部航路点-谷歌地图
我正在尝试显示一条带有旅行航路点的路线。我将所有坐标保存到一个MySQL varchar属性中,然后使用php将其取出,并将其分割成一个数组,这样两个数组元素FROUTS[0]和FROUTS[1]表示开始,FROUTS[2]和FROUTS[3]表示第一个航路点,即访问的第二个地点,依此类推 我试图显示行程的路线,如果我不使用航路点,也就是说,如果我不使用除起点和终点之外的所有点填充waypts数组,它将非常有效 这是我的密码Javascript 对于回路内部航路点-谷歌地图,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在尝试显示一条带有旅行航路点的路线。我将所有坐标保存到一个MySQL varchar属性中,然后使用php将其取出,并将其分割成一个数组,这样两个数组元素FROUTS[0]和FROUTS[1]表示开始,FROUTS[2]和FROUTS[3]表示第一个航路点,即访问的第二个地点,依此类推 我试图显示行程的路线,如果我不使用航路点,也就是说,如果我不使用除起点和终点之外的所有点填充waypts数组,它将非常有效 这是我的密码 <style> #map-canvas {
<style>
#map-canvas {
width: 100%;
height: 400px;
}
</style>
<script type="text/javascript">
var fruits = <?php echo json_encode($arr); ?>;
for (var i = 0; i < fruits.length; i+=2) {
//text += cars[i];
}
</script>
<script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var dbk = new google.maps.LatLng(fruits[0], fruits[1]);
var mapOptions = {
zoom: 11,
center: dbk,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
directionsDisplay.setMap(map);
calcRoute();
}
function calcRoute() {
var waypts = [];
for (var i = 2; i < fruits.length -2; i+=2) {
waypts.push(new google.maps.LatLng(fruits[i], fruits[i+1]));
};
var request = {
origin: new google.maps.LatLng(fruits[0], fruits[1]),
destination: new google.maps.LatLng(fruits[fruits.length-2],fruits[fruits.length-1] ),
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var route = response.routes[0];
var summaryPanel = document.getElementById("directions_panel");
summaryPanel.innerHTML = "";
// For each route, display summary information.
for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i + 1;
summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />";
summaryPanel.innerHTML += route.legs[i].start_address + " to ";
summaryPanel.innerHTML += route.legs[i].end_address + "<br />";
summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />";
}
} else {
alert("directions response "+status);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
#地图画布{
宽度:100%;
高度:400px;
}
var水果=;
对于(变量i=0;i<0.length;i+=2){
//text+=汽车[i];
}
var方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var dbk=new google.maps.LatLng(水果[0],水果[1]);
变量映射选项={
缩放:11,
中心:dbk,,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
calcRoute();
}
函数calcRoute(){
var-waypts=[];
对于(变量i=2;i ”;
summaryPanel.innerHTML+=route.legs[i]。起始地址+“to”;
summaryPanel.innerHTML+=route.legs[i]。结束地址+“
”;
summaryPanel.innerHTML+=route.legs[i].distance.text+“
”;
}
}否则{
警报(“方向响应”+状态);
}
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
您需要将其用于航路点
var waypts = [];
for (var i = 2; i < fruits.length -2; i+=2) {
waypts.push({
location:new google.maps.LatLng(fruits[i], fruits[i+1]),
stopover:true
});
};
var-waypts=[];
对于(变量i=2;i