Javascript 如何使用谷歌地图API路线计算每个国家的距离
例如,我有一个简单的路线。现在我可以计算所有路线的距离(572公里)。如何计算每个国家的距离?德国约100公里,波兰约472公里 我尝试使用Javascript 如何使用谷歌地图API路线计算每个国家的距离,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,例如,我有一个简单的路线。现在我可以计算所有路线的距离(572公里)。如何计算每个国家的距离?德国约100公里,波兰约472公里 我尝试使用start\u location在legs[]中为每个方向leg检测国家边界,并通过start\u location检测国家名称。例如: getCountry(legs[0]) => 'pl' getCountry(legs[1]) => 'pl' getCountry(legs[2]) => 'pl' //border detected
start\u location
在legs[]
中为每个方向leg
检测国家边界,并通过start\u location
检测国家名称。例如:
getCountry(legs[0]) => 'pl'
getCountry(legs[1]) => 'pl'
getCountry(legs[2]) => 'pl'
//border detected
getCountry(legs[3]) => 'de'
getCountry(legs[4]) => 'de'
这是可行的,但如果路线太大,getCountry()
returnOVER\u QUERY\u LIMIT
已更新
谢谢你的帮助
工作。
警告:代码工作正常,但未进行优化。小心点
顺便说一句,我的英语很抱歉您需要一种方法,避免每一步都要求检测国家 有一个包含国家边界的Fusionable: 可能的工作流程:
SELECT sovereignt,json_4326
FROM 16CTzhDWVwwqa0e5xe4dRxQ9yoyE1hVt_3ekDFQ
WHERE ST_INTERSECTS(kml_4326,
RECTANGLE(LATLNG(51.88951,13.38593),
LATLNG(52.52003,21.01219)))
此查询中使用的矩形将基于给定路由的边界
-属性创建。样本请求:google.maps.geometry.poly.containsLocation()
检查开始位置(或结束位置)是否放置在当前多边形中。执行此操作时,将当前步长的距离添加到当前国家/地区的距离中我不知道我的方法是否比你的getCountry()快,但我使用说明文本并搜索“进入”(如“进入德国”)——这意味着你在边境(但你必须使用下一个索引的lat lng)
编辑:我刚刚意识到每一步都有一个结束位置,所以你不需要下一步作为计算子站的参考。或者简单地使用
myroute.legs[0]。步长[j]。距离。值
。此外,将每一步的距离加在一起,无需调用任何进一步的函数。请向我们展示您的代码,以获取答复。“请求受路线影响国家的几何图形”-我怎么能做到?因为我刚才没有机会测试它,所以花了很多时间,但非常感谢,它是有效的。注意,Fusion Tables将于2019年12月3日关闭。可以使用相同的算法,但需要不同的多边形源。
var instr = myroute.legs[0].steps[i].instructions;
isBorder=instr.includes("Entering");
if(isBorder) {
// calculate partial distance with myroute.legs[0].steps[i+1].start_location.lat() etc;
}