Buongiorno,
ho un problema con due punti 3d con quote differenti, qualcuno sa come si fa a calcolare l'angolo zenitale con spatialite, o postgis? L' azimuth è select degrees(st_azimuth(geoA, geoB)) as 'azimuth'; Grazie! _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017 |
On Wed, 30 Jan 2019 11:40:38 +0100 (CET), [hidden email]
wrote: > Buongiorno, > > ho un problema con due punti 3d con quote differenti, qualcuno sa > come si fa a calcolare l'angolo zenitale con spatialite, o postgis? > > L' azimuth è select degrees(st_azimuth(geoA, geoB)) as 'azimuth'; > Simone, l'implementazione di SpatiaLite per ST_Azimuth dovrebbe essere esattamente la medesima come per PostGIS, visto che il calcolo vero e proprio lo fanno la lwgeom (per PostGis) e la librttopo (per splite) che e' semplicemente un porting della lwgeom. per quanto vedo dai sorgenti funziona solo per punti 2D, il caso 3D non mi pare che venga mai preso in considerazione. spero di sbagliarmi, ma non mi pare che quanto chiedi rientri tra le opzioni supportate. ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017 |
Alla fine ho risolto così con spatialite NEXTGEN, facendo anche un confronto
tra le varie formule, con la bellezza del calcolo 3d =) --I calcoli geodetici vogliono solo epsg=4326 altrimenti non funzionano! --CALCOLA RELAZIONE TRA DUE PUNTI: (epsg=4326 WGS84, epsg=25832 ETRS89/UTM_zone_32N) select st_distance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as 'distanza_2d', st_3ddistance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as 'distanza_3d', degrees(st_azimuth(st_transform(geoA, 25832), st_transform(geoB, 25832))) as 'azimuth', degrees(asin((st_z(geoA)-st_z(geoB))/st_3ddistance(st_transform(geoA, 25832), st_transform(geoB, 25832)))) as 'angolo_zenitale', geodesicarclength(geoA, geoB) as 'arcodistanza', geodesicchordlength(geoA, geoB) as 'corda', degrees(geodesiccentralangle(geoA, geoB)) as 'angolo_centrale', geodesicarcheight(geoA, geoB) as 'h_arco' from (select st_geomfromtext('POINTZ(11.040796 46.139230 2071)', 4326) as geoA, st_geomfromtext('POINTZ(11.160461 46.195844 727.5)', 4326) as geoB); -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017 |
On Mon, 4 Feb 2019 04:13:26 -0700 (MST), Falz wrote:
> Alla fine ho risolto così con spatialite NEXTGEN, facendo anche un > confronto > tra le varie formule, con la bellezza del calcolo 3d =) > > --I calcoli geodetici vogliono solo epsg=4326 altrimenti non > funzionano! > --CALCOLA RELAZIONE TRA DUE PUNTI: (epsg=4326 WGS84, epsg=25832 > ETRS89/UTM_zone_32N) > > select > st_distance(st_transform(geoA, 25832), st_transform(geoB, 25832)) as > 'distanza_2d', > st_3ddistance(st_transform(geoA, 25832), st_transform(geoB, 25832)) > as > 'distanza_3d', > degrees(st_azimuth(st_transform(geoA, 25832), st_transform(geoB, > 25832))) as > 'azimuth', > degrees(asin((st_z(geoA)-st_z(geoB))/st_3ddistance(st_transform(geoA, > 25832), st_transform(geoB, 25832)))) as 'angolo_zenitale', > geodesicarclength(geoA, geoB) as 'arcodistanza', > geodesicchordlength(geoA, geoB) as 'corda', > degrees(geodesiccentralangle(geoA, geoB)) as 'angolo_centrale', > geodesicarcheight(geoA, geoB) as 'h_arco' > from > (select > st_geomfromtext('POINTZ(11.040796 46.139230 2071)', 4326) as geoA, > st_geomfromtext('POINTZ(11.160461 46.195844 727.5)', 4326) as geoB); > Simone, hai scritto l'elogio perfetto dello Spatial SQL :-D quando hai uno strumento di calcolo e di analisi cosi' flessibile e potente, non e' mai un problema insormontabile se non trovi la soluzione pre-cotta che ti serve pronta all'uso. basta un pizzico di fantasia e puoi sempre provare a scrivertela da solo appoggiandoti alle tantissime funzioni SQL disponibili. direi che il tuo e' un bel caso da manuale. ;-) ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017 |
Free forum by Nabble | Edit this page |