哪3个标记创建一个包含指定点的三角形?
问题描述:
我有一个地图上有〜50个标记(谷歌地图API v3),我想点击一个随机点,并得到围绕它的3个标记。
我发现this的例子,但它并不真正做我想单独的事情。哪3个标记创建一个包含指定点的三角形?
这里是我的标记的图像和我想要做到: [IMAGE]
根据图像; 当我点击红色点时,脚本应该返回这三个与黄线连接的标记的坐标。 蓝点和绿线相同。
它必须是最窄,最小的三角形。
我试过找到最接近的3个标记,它适用于大多数情况,但并不包括所有。 (就像在有近距离的同一行中有3个标记一样)。
有什么建议吗?提前致谢!
编辑 ps。如果有帮助,我可以使用PHP和Ajax调用。
答
它使用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
/* } */
这可能不是最有效的方法,但除非我找到另一种方式,否则这将完成这项工作。
标记是否固定? – 2014-11-05 10:14:02
@davidstrachan我正在用PHP打印它们为Javascript数组,然后循环并放上地图。他们可能会保持一段时间的固定,但他们会改变或新的会不时增加。我想答案是否定的。 – semihcosu 2014-11-05 10:53:48