2010-01-30 5 views

cevap

1

getPolyline seçeneğini GDirectionsOptions isteğe bağlı parametresinde, GDirections load isteği için ayarlayabilirsiniz. Bu size rota için polyline verilerini verecektir.

Bu verilere sahip olduğunuzda, poligondaki her nokta üzerinde yineleyebilir ve kendi veri noktalarınızın her birine olan mesafeyi belirleyebilirsiniz (mesafeyi hesaplamak için GLatLng distanceFrom yöntemini kullanabilirsiniz).

Veri noktalarınızın her biri için rotanıza en kısa mesafeye eriştiğinizde, nokta üzerinde rota varsa, bazı toleranslara dayanarak çalışabilirsiniz.

Düzenleme:

(o iki nokta arasındaki mesafeyi almak için sadece bir yarar yöntemidir) art arda GLatLng distanceFrom yöntemi çağırmak için ince olmasına rağmen

, ben cevabım sorunu kolaylaştırır fark etti. Rotadan doğru bir mesafe elde etmek için, en yakın iki nokta arasındaki poligon mesafesini belirlemeniz gerekecektir (sadece her noktadan uzaklık değil).

+0

Bence getDistance yerine distanceFrom demek istiyorsunuz. getDistance bir GDirections Yöntemi'dir ve polylinedaki her köşe noktası için bir GDirections çağrısı yapmak istemezsiniz; çünkü bu çok yavaş ve hızlı bir şekilde GDirections kotanızda yer alır. –

+0

Hayır. Ben * GLatLng * * getDistance * hakkında konuşuyorum. Bu iki coğrafi nokta arasındaki mesafeyi kontrol etmek için bir yardımcı programdır. – RedBlueThing

+0

Oops ... Sadece karışıklığın sebebini fark ettim. GLatLng'deki * distanceFrom * yöntemini kastettim. – RedBlueThing

1

Bill Chadwick, this page'un alt kısmında "Polyline veya Polygon'a Nokta Mesafesi" koduna sahiptir, bu da yararlı olabilir.