İlk kez SQL Server 2008 R2'nin mekansal özelliklerini kullanmaya çalışıyorum, lütfen bana çıplak bakın.SQL Server 2008 R2 Coğrafya Mesafe?
aşağıdaki sütunları içeren bir tablo oluşturduk:
Rotterdam - POINT (51.925637 4.493408 4326)
Utrecht - POINT (52.055868 5.103149 4326)
Nijmegen - POINT (51.801822 5.828247 4326)
Breda - POINT (51.542919 4.77356 4326)
istediğim için: verileri (google maps koordinatları var) olarak
Text:varchar(255)
Location:geography
Onlar Hollanda'dan birkaç şehrin içerirler Rotterdam'daki tüm şehirler arasındaki mesafeyi bilin, bu yüzden şu sorguyu gerçekleştiriyorum:
Ama sonuç olarak her şehir için 6800000'e yakın bir uzaklık elde ediyorum.
Buna neden olabilir?
Düşünebilmemin tek nedeni, yanlış SRID kullanıyorum, ancak bunun yerine hangisini kullanmam gerektiğini anlayamıyorum.
Teşekkürler!
Düzenleme:
bunun halt sayılarla oynayarak gitti ve bazı garip sonuçlar elde ettim Sadece için: ilginç nereden Şimdi burada
Distance from Rotterdam to Rotterdam: 6828459.57 (A) (weird but true)
Distance from Rotterdam to Breda: 6779956.10 (B)
Distance from Rotterdam to Nijmegen: 6695336.38 (C)
:
(A) - (B) = 48504 m = 48 km
(A) - (C) = 133123 m = 133 km
Bu değerler kabaca bu şehirler arasındaki mesafelerdir.
Hala neyi yanlış yaptığımı bilmiyorum, ancak kodunuz çalışır, böylece bundan gideceğim. Teşekkürler =) – SaphuA
@SaphuA Rica ederim. Bir sidenote olarak NULL olabilecek bir GEOGRAPHY veri türü sütununda bir uzamsal indeks kullanma ÇOK dikkatli olun. Bazı ciddi performans sorunları var, bu yüzden ŞEMA KILAVUZU'nu şemayı yeniden biçimlendirmeniz gerekse bile null yapamazsınız. – Tomas
Tomas'ın, nilüfer coğrafya türlerinde uzamsal bir endeksle performans sorunları hakkındaki yorumu harika. Daha fazla bilgi burada: http://stackoverflow.com/questions/4954875/sql-server-2008-performance-on-nullable-geography-column-with-spatial-index – TTT