2008-12-03 27 views
10

Bir yol noktası noktası (diğer bir deyişle, seyahat eden satıcı problemi için "yeterli" bir çözüm) verilen "optimize edilmiş" bir rotayı geri almak için Google Haritalar API'sini kullanmanın bir yolu var mı? ya da her zaman rotayı belirtilen sıradaki noktalarla mı döndürüyor?Google Haritalar ile en uygun harita yönlendirmesi

+2

de eylem kütüphane görebilirsiniz

http://code.google.com/p/google-maps-tsp-solver/ Slashdot bu fikri üzerine bir bütün tartışma var bakınız: http://ask.slashdot.org/article.pl?sid=08/ 01/09/2311215 – brianegge

cevap

5

Onları her zaman sırayla verir.

Bu yüzden, her bir puan çifti arasındaki mesafeyi (veya zamanı) birer birer bulmalı ve sonra seyahat eden satıcı problemini kendiniz çözmelisiniz. Belki de Google Haritalar'ı bu özelliği eklemek için ikna edebilirsiniz. "Yeterince iyi" bir çözümün neyi oluşturduğunu sanırım ne yaptığınıza ve ne kadar hızlı olması gerektiğine bağlı.

+0

Cevabınız şimdi düzeltilemiyor. Google artık TSP sorununu destekliyor. Google haritasının ücretsiz sürümü, başlangıç, bitiş ve 8 orta puan içerir. (toplam 10 puan) Daha sonra kullanıcı referansı için tekrar düzenleyeceğinizi umuyoruz :) – hqt

4

Tipik bir TSP probleminde, varsayım, herhangi iki nokta arasında doğrudan hareket edebilir. Yüzey yolları için, bu asla durum değildir. Google iki nokta arasındaki bir rotayı hesapladığında, sezgisel bir genişleme ağacı optimizasyonu yapar ve genellikle en uygun yolun oldukça yakınına gelir.

Bir TSP yolunu hesaplamak için, önce Google'dan, grafikteki her düğüm arasındaki çiftli uzaklığı hesaplamasını istemek gerekir. Bunun n * (n-1)/2 calcs gerektirdiğini düşünüyorum. Daha sonra bu mesafeleri alabilir ve üzerlerinde bir TSP optimizasyonu gerçekleştirebilir.

OpenStreetMaps.org, istediğinizi yapabileceğiniz bir Java WebStart uygulamasına sahiptir. Tabii ki hesaplamalar müşteri tarafında çalıştırılıyor. Proje açık kaynak ve bir göz atmaya değer olabilir.

Konumlar veya en uygun sürüş rotası arasında en uygun düz çizgi yolunu bulmaya çalışıyor musunuz? Eğer sadece noktaları sipariş etmek istiyorsanız, GPS koordinatlarını alabilirseniz, bu çok kolay bir sorun haline gelir.

+0

API'den "en uygun yolun oldukça yakınına" nasıl geri dönersiniz? Onları sadece girdiğim sıraya geri alabilirim. – Soldarnal

+1

Google, puan sipariş etmeyecek. Google'ın hesapladığı en uygun yol, iki nokta arasındaki mesafedir. New York'tan Kaliforniya'ya kaç yol var? Sonsuza yakın. Google size iyi bir rota bulacaktır, bu muhtemelen en uygun yoldur, ancak daha kısa bir rota olabilir. – brianegge

4

Sadece http://gebweb.net/optimap/ Çok güzel görünüyor. Google haritalarını kullanarak çevrimiçi sürüm.

+0

Vay muhteşem site ve bu kadar uzun süre çevrimiçi sevindim - bu benim bir arkadaşım için harika bir kullanım olacak! – DPSSpatial

21

Google Haritalar API'sı Yönergesi'nde, optimizasyon yapmak istediğiniz optimizasyonu sağlayan bir seçenek vardır. Bu, ancak, sadece 8 yol noktası kadar işleyebilir.

Alternatif olarak, en iyi (en fazla 15 konum) veya en yakın (100 noktaya kadar) rotaya ulaşmak için Google Maps API ile kullanabileceğiniz bir açık kaynak (MIT lisans) kitaplığı vardır.

Sen www.optimap.net