Siparişleri içeren bir veritabanım var ve her siparişin bir ilişkili yeri var. Currentl, bir kullanıcı giriş yaptığında, her bir sipariş yerini coğrafi olarak kodlamak için Bing Maps API'yi kullanıyorum ve daha sonra giriş yapmış olan kullanıcıya olan sürüş mesafesini hesapladım. Bu mesafelere dayanarak, bir açılır kutu aracılığıyla kullanıcı, bir grid görünümünde görüntülenen sonuçlarla maksimum mesafeleri belirleyebilir. Ancak, 100'den fazla emirle süreç ağrılı bir şekilde yavaşlar. Bing sorgularını en iyi duruma getirme, sonuçların önbelleğe alınması (bing map api'ye yeniden erişilmeden tekrar kullanılabilirler) veya Ajax'ı bir şekilde arka plan işlemlerini gerçekleştirmesi için bazı ipuçlarını takdir ediyorum. Teşekkürler.Bing Maps'i Optimize Etme Geocode ve RouteMapping istekleri
cevap
Çok yakın bir gelecekte benzer bir şey yapmayı planlıyorum, bu yüzden birkaç öneri var, ancak henüz paylaşılacak gerçek bir kod yok. Umarım yararlıdır.
Her bir öğe için db'mdeki Lat/lon'ları depolamayı beklerim (böylece yalnızca bir kez kodlanmış olur). Bir noktadan belli bir mesafe içindeki öğeleri seçmek için, orta noktamın kuzey/güney/doğu/batısında 'x' mil olan lat/lon sayılarını hesaplayacağım. Sonra seçim, lat/lon değerlerinin karemimin değerleri arasında düştüğü basit bir kayıt toplama meselesi haline gelir.
Ve evet, teknik olarak mesafeyi kesin olarak kontrol etmek için bir daire kullanmam gerektiğini biliyorum, ancak bu çok daha kolay ve daha hızlı. Daha kesin bir sınır için bir daire kullanmanız gerekiyorsa, önce bu yöntemi kullanın, ardından köşedeki dairenin dışındaki öğeleri ayıklamak için daha karmaşık hesaplamalar kullanın.
Bing'in lisansına aşina değilim, ancak google hakkında doğru bir şekilde hatırlarsam, coğrafi kodlama sonuçlarını saklamak için ücretli (ticari) bir lisansa sahip olmanız gerekir. Ve ucuz değil. Yani bu öneride bulunabilecek herhangi bir değeri olumsuz etkileyebilir :(
Düzenleme: Soruyu biraz daha dikkatlice okudum ve bunun kilometre mili değil mil sürüşünden söz ettiğini görüyorum. t gerçekten uygun, yapmak zorunda değilsiniz sürüş mesafesi calculcations sayısını daraltmak için bir yol olarak kullanmak zorunda değilsiniz.
Ayrıca, geocoding ve lisanslar konusunda, oldukça ucuz olan geocoder.us bakabilirsiniz
Muhtemelen yapmak istediğiniz kullanıcı için aynı hedef konuma sahip olduğunuzu varsayan bir minimum genişleme ağacı oluşturmak MST hala O (V^2), ancak etkili birçok önbelleğe alıyorsunuz Birçoğundan bu yana en kısa yollardan biri aynı yolları tekrar kullanacaktır.
Bir başka seçenek, yol millerinin yerine önce lineer mesafelerin kullanılmasını tahmin etmektir, ancak bunların tümü kullanıcıya geri gönderdiğiniz şeylere bağlıdır.
İyi şanslar!
MST en kısa yollarda size nasıl yardımcı olur? MST'ye gidip 'önbellek' kullanıp kullanamayacağınıza nasıl karar verilir? – Karussell