Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在谷歌地图API中检查地上是否有纬度/经度点?_Javascript_Google Maps - Fatal编程技术网

Javascript 如何在谷歌地图API中检查地上是否有纬度/经度点?

Javascript 如何在谷歌地图API中检查地上是否有纬度/经度点?,javascript,google-maps,Javascript,Google Maps,我正在绘制两点之间的路线,我需要检查路线是否经过预定义的位置。在api中,每个都有一个起点和终点,但路径不必是直的。给定一个横向/纵向点,是否有方法检查其是否与路线相交 您应该能够非常容易地获得由生成的多段线的各个顶点。首先,如果未将GDirections附加到地图,则在调用GDirections.load()时必须确保传递getPolyline:true选项。然后,您可以简单地迭代多段线的每个顶点,然后您可能应该检查您的点是否在预定义位置的某个距离阈值内 考虑以下示例: var map = n

我正在绘制两点之间的路线,我需要检查路线是否经过预定义的位置。在api中,每个都有一个起点和终点,但路径不必是直的。给定一个横向/纵向点,是否有方法检查其是否与路线相交

您应该能够非常容易地获得由生成的多段线的各个顶点。首先,如果未将
GDirections
附加到地图,则在调用
GDirections.load()时必须确保传递
getPolyline:true
选项。然后,您可以简单地迭代多段线的每个顶点,然后您可能应该检查您的点是否在预定义位置的某个距离阈值内

考虑以下示例:

var map = new GMap2(document.getElementById("map"));
var directions = new GDirections(map);

// Your predefined point
var pt = new GLatLng(51.470, -0.453);

directions.load('from: London, UK to: Glasgow, UK', { getPolyline: true });

GEvent.addListener(directions, "load", function() {
  for (var i = 0; i < directions.getPolyline().getVertexCount(); i++) {
    if (directions.getPolyline().getVertex(i).distanceFrom(pt) < 100) {
      // Your predefined point is within 100 meters of the route
    }
  }
});
var-map=newgmap2(document.getElementById(“map”);
var方向=新的GD方向(地图);
//您的预定义点
var pt=新玻璃(51.470,-0.453);
directions.load('from:London,UK to:Glasgow,UK',{getPolyline:true});
addListener(方向,“加载”,函数(){
对于(var i=0;i
您可能可以通过跳过某些与测试点距离太远的步骤来改进此方法。使用该方法可以获得每个管线步骤的多段线索引。这有助于将for循环限制为更窄的顶点集

进一步阅读和参考:


这种方法行不通。有些台阶可能超过50公里长(比如在同一条高速公路上行驶时)。如果我的兴趣点在这一步的一半,那么检查该点是否在25公里半径范围内会产生大量误报。我需要知道这一点是否正好在那条路线上。@Pavel:你说得对。检查更新的答案。它必须遍历多段线顶点,而不是像我前面建议的那样遍历布线步骤。