[sql server] Filtrare per distanza partendo dalle coordinate

giovedì 22 ottobre 2015 - 16.54
Tag Elenco Tags  C#  |  .NET 4.0

svipla Profilo | Senior Member

Ciao a tutti
ho in una tabella le coordinate geografiche(latitudine e longitudine) di alcuni hotel. Se passo le coordinate di un determinato punto, è possibile scrivere una query che restituisce tutti gli hotel che distano tot km dal punto passato?
Grazie

renarig Profilo | Expert

>è possibile scrivere una query che restituisce tutti gli hotel
>che distano tot km dal punto passato?

Certamente Sì,
la complicazione dipende pero dalla precisione di risultato che vuoi e dalla estensione della tua zona di interesse.

Per la latitudine non vedo grossi problemi,
si tratta degli anelli equatoriali,
che non avendo il polo come centro mantengono pertanto sempre la stessa distanza fra di loro
e in particolare la distanza fra l'anello 0 ( equatore ) e l'anello 10
è uguale alla distanza fra l'anello 80 e l'anello 90 ( polo )

Per la longitudine invece è un pò più dura perché la distanza fra l'anello 0 ( Greewnich ) e l'anello 10
è ancora uguale alla distanza fra l'anello 80 e l'anello 90
pero cambia di moltissimo se la misuri in equatore oppure al polo

Quindi se lavori su una zona geogafica limitata e vicina all'equatore puoi considerare la terra piatta
e cavartela con un po di trigonometria e teorema di pitagora.

se invece lavori per esempio con il sudamerica allora devi ricorrere a una matematica più complessa.
perché la distanza in longitudine che c'e nella punta Sud del Cile è pressappoco uguale alla distanza in longitudine
che c'è fra Atlantico e Pacifico in Brasile.
ma la distanza in Kilometri è notevolmente diversa

In ogni caso SQL è capace a fare i "conticini"


Poi non escludo che esistano gia delle tabelle specifiche o delle formule preconfezionate che ti diano la risposta,
questo è un problema che si sta affrontando dai tempi di Magellano


Facci sapere e dacci qualche dettaglio in più
.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5