Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 哪3个标记创建包含指定点的三角形?_Javascript_Php_Ajax_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 哪3个标记创建包含指定点的三角形?

Javascript 哪3个标记创建包含指定点的三角形?,javascript,php,ajax,google-maps,google-maps-api-3,Javascript,Php,Ajax,Google Maps,Google Maps Api 3,我有一张地图,上面有大约50个标记Google maps api v3,我想点击一个随机点,然后得到它周围的3个标记。 我找到了一个例子,但它并不能单独完成我想要的事情 这是我的标记的图像以及我正在努力实现的目标: 根据图像; 当我单击红点时,脚本应该返回与黄线相连的3个标记的坐标。 蓝点和绿线也一样 它必须是最窄、最小的三角形 我试着找到最接近的3个标记,它适用于大多数情况,但不能涵盖所有情况。就像在同一条直线上有三个近距离的标记 有什么建议吗?提前谢谢 编辑 如果有帮助的话,我可以将PHP

我有一张地图,上面有大约50个标记Google maps api v3,我想点击一个随机点,然后得到它周围的3个标记。 我找到了一个例子,但它并不能单独完成我想要的事情

这是我的标记的图像以及我正在努力实现的目标:

根据图像; 当我单击红点时,脚本应该返回与黄线相连的3个标记的坐标。 蓝点和绿线也一样

它必须是最窄、最小的三角形

我试着找到最接近的3个标记,它适用于大多数情况,但不能涵盖所有情况。就像在同一条直线上有三个近距离的标记

有什么建议吗?提前谢谢

编辑
如果有帮助的话,我可以将PHP与ajax调用结合使用。

通过循环所有标记坐标,使用PHP实现

首先,我检查一个点是否在三角形中,使用 然后检查其面积是否小于上一个

/* 3 foreach loops{ */

$pointLocation = new pointLocation();
$polygon = array($A['y'].' '.$A['x'], $B['y'].' '.$B['x'], $C['y'].' '.$C['x'], $A['y'].' '.$A['x']);
$point = $P['y'].' '.$P['x'];
if(($pointLocation->pointInPolygon($point, $polygon)=='inside' || $pointLocation->pointInPolygon($point, $polygon) == 'vertex'))
// Here I check the area using another function and save this coordinates if this is the smallest triangle. Then it continues to loop

/* } */

这可能不是最有效的方法,但除非我找到另一种方法,否则这将完成工作。

标记是否已修复?@davidstrachan我将使用PHP将它们打印为Javascript数组,然后循环并放到地图上。它们可能会固定一段时间,但它们会被更改,或者会不时添加新的。我想答案是否定的。