527 messaggi dal 18 dicembre 2012
Ciao a tutti

Ho una tabella con comuni e le loro coordinate salvate come campo geography.
Note le coordinate di una città e un raggio in km, vorrei scrivere una query che mi restituisce tutte le città nel raggio di tot km dalla città indicata.
Come posso fare?

Grazie mille
60 messaggi dal 08 aprile 2010
Ciao, prova a partire da qui:
            var latitudine = 100;  //la tua latitudine
            var longitudine = 100; //la tua longitudine
            var raggio = 0.100;    //nel raggio di 100 metri

            var sql = $@"Select *, Truncate(6363 * sqrt( POW( RADIANS({latitudine}) - RADIANS(l.latitudine) , 2 )
                      + POW( RADIANS({longitudine}) - RADIANS(l.longitudine) , 2 ) ) , 3 ) AS dist 
                      FROM aziende AS l WHERE 
                      TRUNCATE ( 6363 * sqrt( POW( RADIANS({latitudine}) - RADIANS(l.latitudine) , 2 ) + POW( RADIANS({longitudine}) - RADIANS(l.longitudine) , 2 ) ) , 3 ) < {raggio}
                      ORDER BY dist ASC";

Modificato da emiliano.fusaro il 01 marzo 2018 08.10 -
11.886 messaggi dal 09 febbraio 2002
Contributi
No, aspetta, conviene farlo con le apposite funzioni geografiche, dato che la colonna è di tipo geography.
Vedi STDistance, in fondo a questa pagina trovi un esempio:
https://docs.microsoft.com/it-it/sql/t-sql/spatial-geography/stdistance-geography-data-type
Qui ci sono altri esempi:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/38b7f743-4f65-4920-b0dc-219787fab3df/querying-points-within-a-radius-of-point-x?forum=sqlspatial

Qui c'è uno script che ti mostra come sfruttare i tipi geography da Entity Framework.
http://www.aspitalia.com/script/1223/Usare-Spatial-Types-Ricerche-Geografiche-ASP.NET.aspx

ciao,
Moreno

Enjoy learning and just keep making
12 messaggi dal 19 settembre 2014
BrightSoul ha scritto:
No, aspetta, conviene farlo con le apposite funzioni geografiche, dato che la colonna è di tipo geography.


Condivido.. se usi sqlserver sono "come cacio sui maccheroni" (si dice a Lucca)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.