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

时间:2014-11-05 09:33:26

标签: javascript php ajax google-maps google-maps-api-3

我有一张带有约50个标记的地图(Google maps api v3),我想点击一个随机点,然后找到它周围的3个标记。
我找到了 this 的例子,但它并没有真正做我想要的事情。

这是我的标记的图像以及我想要完成的事情: [IMAGE]

根据图像; 当我点击红点时,脚本应该返回那些用黄线连接的3个标记的坐标。 蓝点和绿线相同。

它必须是最窄,最小的三角形。

我已经尝试找到最接近的3个标记,它适用于大多数情况,但并未涵盖所有情况。 (就像在同一行中有3个标记并且有近距离时。)

有什么建议吗?提前谢谢!

修改 PS。如果它有帮助,我可以使用PHP和ajax调用。

1 个答案:

答案 0 :(得分:-1)

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

首先,我使用 this class 检查了一个点是否在三角形中 然后检查它的'区域是否小于最后一个区域。

/* 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

/* } */

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