Tasolla olevan monikulmion pinta-alahan voidaan laskea kätevästi nurkkapisteiden koordinaateista. Laskutapa on neuvottu esimerksi tämän linkin https://www.wikihow.com/Calculate-the-Area-of-a-Polygon lopussa (Part 3 Finding the Area of Irregular Polygons)
Pallon pinnalla olevien pisteiden välinen etäisyys saadaan taas laskettua haversine-kaavalla. https://en.wikipedia.org/wiki/Haversine_formula
Mutta millähän menetelmällä saataisiin ratkaistua (maa)pallon pinnalla olevan monikulmion pinta-ala, kun käytössä on nurkkapisteiden sijainnin määrittävät koordinaatit asteina? Eli myös pallon kaarevuus pitäisi huomioida.
Pallon pinnalla olevien pisteiden välinen etäisyys saadaan taas laskettua haversine-kaavalla. https://en.wikipedia.org/wiki/Haversine_formula
Mutta millähän menetelmällä saataisiin ratkaistua (maa)pallon pinnalla olevan monikulmion pinta-ala, kun käytössä on nurkkapisteiden sijainnin määrittävät koordinaatit asteina? Eli myös pallon kaarevuus pitäisi huomioida.
Vastaukset 4
Vanhimmat
Jokainen pallomonikulmio voidaan jakaa pallokolmioiksi. Pallomonikulmion pinta-ala on luonnolliesti näiden pallokolmioden summa.
Pallokolmion pinta-alan laskuun löytyy kaavat vaikkapa
https://fi.wikipedia.org/wiki/Pallotrigonometria
Ja lisää English-linkistä ja sen Talk- ja muista linkeistä.
Kiitokset vinkistä. Tuota kautta päädyin valmiiseen Python-kirjastoon, jolla saa laskettua arvon suoraan. Tällä kertaa ei tarvinnut keksiä pyörää uudelleen.
https://pypi.org/project/area/
Pythonilla riitti 5 riviä Suomen pinta-alan laskemiseen. Suomen rajojen koordinaatit json-muodossa.
https://github.com/mledoze/countries/tree/bb61a1cddfefd09ad5c92ad0a1effbfceba39930/data
--- koodi ---
import json
from area import area
with open("/home/user/Downloads/fin.geo.json") as file:
data = json.loads(file.read())
print(area((data["features"][0])["geometry"]))
--- koodi ---
Tulos = 333705099073.533, joka lienee neliömetrejä. Ainakin Ahvenanmaa näytti puuttuvan tuosta json-datasta.
Täytynee vielä mielenkiinnosta perehtyä tuohon monikulmion purkamiseen kolmioiksi. Yksi tapa on näköjään "ear clipping".
https://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf
Teoria laskennalle tässä:
http://mathworld.wolfram.com/SphericalPolygon.html
Teorian laskennalle antaa lokaali Gauss-Bonnet-teoreema, joka R-säteisen pallon tapauksessa ja polygonin (n kärkeä) sisäkulmien b(i) avulla lausuttuna sanoo, että kun pallolla olevan polygonin sivut ovat geodeettisia viivoja ja K = pallonpinnan Gaussin kaarevuus niin
Alueen A yli otettu integraali K dA = Summa (1 <= i <= n) b(i) - (n-2) pii.
Pallolla K = vakio = 1/R^2 joten
A = R^2 (Summa (1 <= i <= n) b(i) - (n-2) pii)
"Anonyymi" Ohman