Binlerce enlem/boylam noktasını bir MySQL db'ye kaydetmek istiyorum. Tabloları kurmakta ve veriyi "koordinat" sütununun bir Nokta (lat, lng) olduğu yer olan coğrafi uzantıları kullanarak ekleyerek başarılı oldum.MySQL geospatial uzantıları, küresel geometrilerle nasıl kullanılır
Sorun:
hızla 'X' dereceleri ve boylam 'Y' dereceye kadar çıkacak 'N' yakın girişlerini bulmak istiyorum. Distance() işlevi henüz uygulanmadığından, (X, Y) ve girişlerin her biri arasındaki mesafeyi hesaplamak için GLength() işlevini kullandım, artan mesafeye göre sıralama ve 'N' sonuçlarına sınırlama. Sorun şu ki, bu küresel geometri ile en kısa mesafeyi hesaplamıyor. Yani, Y = 179.9 derece ise, en yakın girişlerin listesi sadece 179.9'dan başlayan boylamları içerecek ve -179.9'dan başlayan boylamlarla daha yakın girdiler olsa da azalacaktır.
Veritabanlarında küresel geometrilerle çalışırken, genellikle süreksizlik, süreklilikle nasıl başa çıkıyor? Bunun için kolay bir çözüm olmalı, ancak yanlış bir şey arıyor olmalıyım çünkü yararlı bir şey bulamadım.
GLength() işlevini unutmam ve açısal ayırmayı hesaplamak için kendi işlevimi oluşturmalı mıyım? Bunu yaparsam, hala hızlı olacak ve coğrafi uzantılardan faydalanacak mı?
Teşekkürler!
josh
GÜNCELLEME:
This aynen yukarıda tarif ediyorum budur. Ancak, yalnızca SQL Server içindir. Görünüşe göre SQL Server bir Geometri ve Coğrafya veri türlerine sahiptir. Coğrafya tam ihtiyacım olan şeyi yapıyor. MySQL'de benzer bir şey var mı?
Cevabınız için teşekkürler. İnsanlar bunun için genellikle ne kullanıyor? Bağladığınız sayfayı bir süre önce gördüm, ancak bu sadece verilen enlem/boylama en yakın noktaları bulma problemini çözüyor gibi görünüyor. Bir bölgedeki tüm noktaları talep etme problemini çözmez. Rulayı kullanarak kendi yönteminizi 178 lon'dan -178 lon'a ve 30'dan 35'e kadar (dikdörtgen bölge) tüm noktaları talep etmenize izin vermez. – Joshua
[PostGIS] kullanıyorum (http://postgis.refractions.net/). Kullanılabilecek birkaç açık kaynak kütüphanesi de vardır - check out [osgeo] (http://www.osgeo.org/).Yaptığınız her şey nispeten mesafe hesaplamaları olsa da bu aşırı bir olasılık olabilir. – Seth