Google maps 得一分

Google maps 得一分,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我引用了Google Maps上的一些位置(通过使用AJAX加载JSON数据),然后将这些点存储在一个数组中,然后将一些标记相互链接,并将多段线存储在一个数组中 现在,我尝试筛选一些标记(给定其名称),从上一个列表中检索相应的标记(或点),并在所有多段线上执行循环,以获得后一个点作为起点或终点的标记。 问题是,我使用此函数从多段线仅获取起点和终点的坐标polyline.getPath().getAt(indicelop),我需要将其与点的坐标进行比较 那么,对于一个已经创建的点,有没有办法获得坐

我引用了Google Maps上的一些位置(通过使用AJAX加载JSON数据),然后将这些点存储在一个数组中,然后将一些标记相互链接,并将多段线存储在一个数组中

现在,我尝试筛选一些标记(给定其名称),从上一个列表中检索相应的标记(或点),并在所有多段线上执行循环,以获得后一个点作为起点或终点的标记。 问题是,我使用此函数从多段线仅获取起点和终点的坐标
polyline.getPath().getAt(indicelop),我需要将其与点的坐标进行比较

那么,对于一个已经创建的点,有没有办法获得坐标呢


非常感谢

假设一个google.maps.Marker(“Marker”)和一条google.maps.Polyline(“Polyline”)。没有测试

if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(0)) < 0.1) {
  // marker is at start of polyline
  alert("marker at start");
} else if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(polyline.getPath().getLength()-1)) < 0.1) {
  // marker is at end of polyline
  alert("marker at end");
}
if(google.maps.geometry.spherical.ComputedIstanceBeween(marker.getPosition(),polyline.getPath().getAt(0))<0.1){
//标记位于多段线的起点
警报(“启动时的标记”);
}else if(google.maps.geometry.spherical.ComputedIstanceBeween(marker.getPosition(),polyline.getPath().getAt(polyline.getPath().getLength()-1))<0.1){
//标记位于多段线的末端
警报(“末端标记”);
}

实际上,我最终使用了marker.getPosition().equals(line.getpath().getAt())和相同的行结束符,效果很好


谢谢你的建议:)

你的意思是获得一个给定参考的标记的坐标()?“已创建的点”是如何保存的?当我创建标记并将它们插入地图(在每个循环中)时,这些点会保存到数组中。我将尝试您的建议,稍后回来:)实际上是函数:polyline.getPath().getAt(indicelop);返回如下内容(5.60518980026245,-0.16678600013256073),而marker.getPosition()返回一个对象!!如何检查该点是否表示多段线的起点或终点,因为函数polyline.getPath().getAt(indiceLoop)与marker.getPosition一样返回google.maps.LatLng。为了比较两个LatLngs对象,我通常计算它们之间的距离,如果距离足够小,那么它们是相同的。是的,你是对的,它返回一个对象。关于距离,你怎么计算呢?我考虑过比较lat和lng,并说如果它们相等,它们是相同的!!我投票赞成你的答案并接受了它,因为我最初需要的是获取点的坐标,而你建议使用getPosition()函数