Daugiau

Skaičiuojama WGS84 (EPSG: 4326) sritis C# arba SQLGeometry?


Aš paprastai nesu GIS kūrėjas, aš tik padedu su klaida ir esu suglumęs dėl to, kas čia vyksta, ar galėčiau gauti pagalbos.

Turiu du skaičiavimus: vieną iš 4326 (WGS84) ir vieną iš 3857 („Google Mercator“). Koordinatės buvo konvertuotos iš 4326 -> 3857, ir aš patvirtinau, kad jos teisingos naudojant „ArcGIS“ ir įvairius internetinius svetainių konvertavimo įrankius. Rezultatai, kuriuos turiu, yra…

-114.50,38.0=-12746081.696,4579425.813 -114.00,40.0=-12690421.950,4865942.280

Jei apskaičiuosiu 3857 plotą, apskaičiuodamas x ir y taškų skirtumą, tada padauginęs skirtumus ir padalijęs iš 1 mil, kad gautumėte kvadratinį kilometrą, gausiu šiek tiek mažiau nei 16 000 kv. Vykdant „SqlGeometry.STArea“ daugiakampyje „bbox“, naudojant šiuos taškus, man gaunamas panašus skaičius.

Jei ilgą latą paversiu UTM, gausiu skaičius ...

-114.50,38.0 = 719510.335753775,4208764.46330096 -114.00,40.0 = 243900.352021924,4432069.05663229 „Excel“ skaičiavimai į rytus nuo šiaurės kv.m 719 510,3358 4 208 764,4633 ---------------------------------------------- 475 609 9837 223 304,5933 106 205 894 001,5610 106 205,8940

Svetainės, naudojamos konvertuoti į UTM

http://www.latlong.net/lat-long-utm.html

http://www.rcn.montana.edu/Resources/Converter.aspx

http://www.earthpoint.us/Convert.aspx

Atlikus tą patį skirtumo ir ploto skaičiavimą, gaunamas 106 205 kv.

Šiuo metu kodas apskaičiuoja latą, atlikdamas šiuos veiksmus „bbox“ daugiakampyje ...

SqlGeography geog = SqlGeography.STGeomFromWKB (aoi.STAsBinary (), (int) aoi.STSrid); plotas = (dvigubas) geog.STArea ();

Tai man suteikia apie 9600 kv.

Ką turiu žinoti…

Bandau išsiaiškinti, kuris skaičiavimas teisingas. Aš linkęs į tai, kad 3857 būtų teisingas, nes skaičiavimai duoda maždaug tuos pačius skaičius, nesvarbu, kaip juos darau. Kadangi manau, kad 4326 yra neteisingas, man reikia geresnio būdo tai apskaičiuoti dabartinėje programoje (naudoja C# ir SQLGeometry). Jei kas nors mano skaičiavimuose mato klaidą, praneškite man ir kaip tai padaryti geriau, jei taip.


Be to, kad projekcija EPSG: 3857 neišsaugo plotų, jos vienetai nėra tikri skaitikliai. Tik ties pusiauju jie atitinka tikrus metrus, o tuo labiau ištempiami iki polių.

UTM taip pat neišsaugo sričių, tačiau sumažina atstumo klaidas, kol esate toje pačioje UTM zonoje (to nėra pavyzdyje). Taigi jis naudoja tikrus skaitiklius kaip vienetus.

Vienintelis teisingas būdas apskaičiuoti plotus yra naudoti vienodo ploto projekciją. Šiaurės Amerikoje galite išbandyti ESRI: 102008

+proj = aea +lat_1 = 20 +lat_2 = 60 +lat_0 = 40 +lon_0 = -96 +x_0 = 0 +y_0 = 0 +atskaitos taškas = NAD83 +vienetai = m +no_defs

Naudojant QGIS ir įmontuotą$ srityjelauko skaičiuoklės funkciją, gaunu jūsų 0,5x2,0 laipsnių plotą:

EPSG: 2163 8105,49 km² (remiantis sfera) EPSG: 3857 15947,73 km² („Google“ kvadratiniai metrai) EPSG: 32107 9617,65 km² (NAD83 Nevada East) EPSG: 32611 9622,15 km² (WGS 84 / UTM zona 11N) ESRI: 12008 9616,38 km² North_America_Albers_Equal_Area_Conic)

Kaip matote, EPSG: 3857 yra nieko vertas. Tai tik populiari vizualizacija, nieko daugiau.