Google maps api 3 即使optimizeWaypoints设置为True,Google Map API也不提供优化的路线
它给出了不正确的路径:Google maps api 3 即使optimizeWaypoints设置为True,Google Map API也不提供优化的路线,google-maps-api-3,Google Maps Api 3,它给出了不正确的路径: var request = { origin: "34.040531,-118.255403", destination: "34.040531,-118.255403", waypoints: [{ location: "48.182379, -117.042542", stopover: true }, { location: "38.657527,-120.972854", s
var request = {
origin: "34.040531,-118.255403",
destination: "34.040531,-118.255403",
waypoints: [{ location: "48.182379, -117.042542", stopover: true },
{ location: "38.657527,-120.972854", stopover: true }],
travelMode: google.maps.DirectionsTravelMode.DRIVING,
optimizeWaypoints: true,
};
!
但优化的路线应该是
"34.040531,-118.255403" -> "48.182379, -117.042542" -> "38.657527,-120.972854" -> "34.040531,-118.255403"
Miles:- 2152 miles
如何计算英里数?(根据建议,我在问题中添加了这一点
英里数是根据谷歌API响应计算的 谷歌给出了长途路线(2152)
A:“34.040531,-118.255403”#加利福尼亚州洛杉矶第九街东110号
B:“48.182379,-117.042542”#华盛顿州新港联合大道北235号
C:“38.657527,-120.972854”#加利福尼亚州卡梅隆公园Coach巷3300号
A:“34.040531,-118.255403”#加利福尼亚州洛杉矶第九街东110号
优化路线应为(1307)
A:“34.040531,-118.255403”#加利福尼亚州洛杉矶第九街东110号
B:“38.657527,-120.972854”#加利福尼亚州卡梅隆公园长途汽车巷3300号
C:“48.182379,-117.042542”#华盛顿州新港联合大道北235号
答:“34.040531,-118.255403”#110 E 9th St,洛杉矶,加利福尼亚州
发生的事情是这样的。您正在计划一次往返旅行,从A点开始和结束 如果您选择“优化”,您将进入A->B->C->A 如果您选择“未优化”,您将进入A->C->B->A 它们之间的距离如下所示:
- A-B=406英里
- B-C=899英里
- A-C=1252英里
"34.040531,-118.255403" -> "38.657527,-120.972854" -> "48.182379, -117.042542" -> "34.040531,-118.255403"
Miles: 1307 miles
for(i=0;ib->C=406+899=1305)
未优化=A->C->B=1252+899=2151
因此,不计算从倒数第二站到终点站的路程,这就解释了旅程长度的差异
将您的循环更改为这样,这样您也可以计算旅程的最后一段:
for (i = 0; i <= response.routes[0].legs.length - 2; i++) {
var route = response.routes[0];
var d = route.legs[i].distance.text;
totalmiles = totalmiles + roundNumber(parseFloat((d.split(" ")[0]).replace(",", "")), 2);
document.getElementById('TotalMiles').innerHTML = totalmiles + " miles";
}
for(i=0;i
我再清楚不过了。很有趣。你说的是从A点出发,经过B点和C点,回到A点(换言之,经过B点和C点的往返)。谷歌说A->B->C->A=2152英里,但你说A->C->B->A=1307英里。换言之,反向行驶会增加845英里(制作您声称的短版仅比短版长1307英里65%)任何人谁可以帮助我解决这个问题,似乎没有回答,我认为这个问题是在谷歌APII重复-你是如何计算英里的距离,你从哪里得到2152和1307?我已经解释了新的答案,因为评论框是如此基础的每一个建议,包括计算细节毫无疑问,你说得对极了,我们错过了计算完成往返行程的最后一段路程,我们做了必要的更改,所以我们采取了任何一种情况,但最终还是走了2557英里多亏了堆积如山的邓卡尼花了一段时间,但很高兴你终于解决了问题
for (i = 0; i < response.routes[0].legs.length; i++) {