Skjölun / Kjarni / Landmælingafræði

Landmælingar á hnettinum (Spherical)

Fjarlægð, stefna, flatarmál og brúun, með sömu heitum og sömu niðurstöðum á öllum þremur vettvöngunum. Þar sem ekkert reiðir sig á hjálparföll einstakra korta-SDK breytast tölurnar ekki þótt skipt sé um þjónustuaðila. Smellprófun og teiknun stórbauga innan SDK-sins nota allt þennan sama reikning.

ELLIPSOID
WGS84
SEMI-MAJOR
6,378,137 m
FLATTENING
1 / 298.257…
UNIT
metrar / gráður
Vettvangur

01 · Grunnatriðin

Föllin sem eru notuð daglega búa undir Spherical. Fjarlægðir koma til baka í metrum, stefnur í gráðum réttsælis frá réttu norðri, flatarmál í fermetrum. Inntakið eru einfaldlega hnit — engin vörpun og enginn aðdráttur kemur við sögu.

Föll
Lýsing
computeDistanceBetween
Fjarlægð milli tveggja punkta, í metrum.
computeHeading
Stefna frá einum punkti til annars (−180…180°).
computeOffset
Punkturinn í tiltekinni fjarlægð og stefnu — notað til að byggja hringi og vafninga.
computeOffsetOrigin
Leysir upphafspunktinn út frá endapunkti, fjarlægð og stefnu.
computeLength
Heildarlengd eftir lista af punktum, í metrum — vegalengdir leiða.
computeArea / computeSignedArea
Flatarmálið sem lokaður hringur umlykur, í fermetrum; formerkta útgáfan segir þér líka snúningsáttina.
interpolate
Brúar milli tveggja punkta eftir stórbaugnum.
Planar.interpolate
Brúar línulega í breidd/lengd (aðferð beina Planar-líkansins) og tekur styttri hliðina yfir daglínuna.
com.mapconductor.core.spherical
val meters = Spherical.computeDistanceBetween(from, to)
val heading = Spherical.computeHeading(from, to)

// Settu jaðarmerki hringsins í átta áttir
val ring = (0 until 8).map { i ->
    Spherical.computeOffset(center, 3_000.0, i * 45.0)
}

val routeMeters = Spherical.computeLength(routePoints)
val areaSqMeters = Spherical.computeArea(polygonPoints)

02 · Kúla og sporvala

Tvö nákvæmnistig eru í boði: kúlulíkan sem meðhöndlar jörðina sem fullkomna kúlu, og líkan stystu leiða á WGS84-sporvölunni.

Bæði nota fasta WGS84 (radíus við miðbaug 6.378.137 m, flatning 1/298,257223563). Sömu fastar og sömu formúlur á öllum þremur vettvöngunum þýða að sama inntak gefur sama úttak.

Spherical

Spherical — nógu hratt og nógu nákvæmt

Fyrir: fjarlægðaraflestur · stefnur · vafninga · flatarmál · smellprófun

Haversine-fjarlægð auk kúluþríhyrningafræði fyrir stefnur og brúun. Upp í nokkur hundruð kílómetra er skekkjan hverfandi í reynd, og reikningurinn er ódýr.

WGS84Geodesic

Sporvölulíkan — sannar stystu leiðir

Fyrir: langar flugleiðir · nákvæma fjarlægð, stefnu og flatarmál

Reiknar eftir stystu leiðum á WGS84 með ítrekaðri lausn af Vincenty-ætt. Það býður sama mengi aðferða og Spherical, svo þú getur skipt Spherical (kúla) út fyrir WGS84Geodesic (WGS84) án þess að breyta kallstöðum. Flatarmál er reiknað á sporvölunni (jafnflatarkúlu).

FALLBACK

Fellur aftur á kúluna þegar ítrunin bregst

Ítrekaða lausnin getur brugðist fyrir punkta sem eru nánast andfætis hvor öðrum. Þá fellur hún aftur á kúluniðurstöðuna, svo þú færð aldrei 0 eða NaN og þarft aldrei villumeðhöndlun á kallstaðnum.

03 · Brúað yfir á skjáinn

Þessi umreikna magn sem miðast við skjáinn — fingurgóm, 16 px spássíu — yfir í landfræðilega fjarlægð. Aðdráttur og breiddargráða eru hluti af umreikningnum, svo tilfinningin helst sú sama hvar sem þú ert og hversu langt sem þú hefur dregið að.

calculateMetersPerPixel
Metrar á hvern pixil við tiltekinn aðdrátt og breiddargráðu.
expandBounds
Stækkar markakassa út á við í metrum — hentugt til að sækja ögn meira en sýnarglugginn.

Mynd · hvernig smellprófun notar þetta

01

Stilltri stærð fingurgóms (rökrænar einingar) er breytt í skjápixla.

02

calculateMetersPerPixel breytir því í vikmörk í metrum fyrir núverandi aðdrátt og breiddargráðu.

03

Þau vikmörk eru notuð til að mæla fjarlægð að línum og formum í landfræðilegum hnitum.

Vegna þessa haldast línur jafn auðsmelltar við hvaða aðdrátt sem er, og niðurstaðan er sú sama hjá hverjum þjónustuaðila.

04 · Fyrir línur og form

Þessi gera teiknun og smellprófun fjöllína og marghyrninga eins hjá öllum þjónustuaðilum. Þetta eru einmitt föllin sem SDK-ið notar innanhúss.

Föll
Lýsing
WGS84Geodesic.createInterpolatePoints
Þéttir leið eftir stystu leið — punktalistinn sem er réttur vélum sem geta ekki teiknað sveigjur.
Planar.createInterpolatePoints
Þéttir eftir beinum línum í breidd/lengd í staðinn. Sama heiti, annað nafnrými.
WGS84Geodesic.pointOnLineOrNull
Skilar næsta punkti á bút eftir stystu leið innan vikmarka — smellprófun fyrir sveigjur.
Planar.pointOnLineOrNull
Prófar hvort punktur sé innan vikmarka frá beinum bút.
splitByMeridian
Klýfur leið sem fer yfir 180° við mörkin. Fall á efsta þrepi, ekki hluti af nafnrými.
closestPointOnSegment
Finnur næsta punkt á bút; einnig á efsta þrepi.

createInterpolatePoints og pointOnLineOrNull eru til bæði undir WGS84Geodesic og Planar með sömu heitum, svo það eitt að skipta um nafnrými dugar til að færa sig milli líkans stystu leiða og beina líkansins.

CONSISTENCY

Sama inntak, sama niðurstaða

Útfærslurnar í Kotlin, Swift og TypeScript deila formúlum og föstum, svo fjarlægðir og flatarmál eru aldrei ósammála milli vettvanga.

PUBLIC API

Þín til að nota líka

Reiknuföll kjarnans eru ekki eingöngu til innanhúss — notaðu þau beint fyrir vegalengdir leiða, radíusreikning eða þína eigin smellprófun. Hvert fall sem talið er upp á þessari síðu er til á öllum þremur vettvöngunum.

Tengdar síður