2014-11-05 67 views
-1

我有一個地圖上有〜50個標記(谷歌地圖API v3),我想點擊一個隨機點,並得到圍繞它的3個標記。
我發現this的例子,但它並不真正做我想單獨的事情。哪3個標記創建一個包含指定點的三角形?

這裏是我的標記的圖像和我想要做到: [IMAGE]

根據圖像; 當我點擊紅色點時,腳本應該返回這三個與黃線連接的標記的座標。 藍點和綠線相同。

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

我試過找到最接近的3個標記,它適用於大多數情況,但並不包括所有。 (就像在有近距離的同一行中有3個標記一樣)。

有什麼建議嗎?提前致謝!

編輯 ps。如果有幫助,我可以使用PHP和Ajax調用。

+0

標記是否固定? – 2014-11-05 10:14:02

+0

@davidstrachan我正在用PHP打印它們爲Javascript數組,然後循環並放上地圖。他們可能會保持一段時間的固定,但他們會改變或新的會不時增加。我想答案是否定的。 – semihcosu 2014-11-05 10:53:48

回答

-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 

/* } */ 

這可能不是最有效的方法,但除非我找到另一種方式,否則這將完成這項工作。