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.
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.
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)let meters = Spherical.computeDistanceBetween(from: from, to: to)
let heading = Spherical.computeHeading(from: from, to: to)
let ring = (0..<8).map { i in
Spherical.computeOffset(origin: center, distance: 3_000.0, heading: Double(i) * 45.0)
}
let routeMeters = Spherical.computeLength(routePoints)import { computeDistanceBetween, computeOffset, computeLength } from '@mapconductor/js-sdk-core';
const meters = computeDistanceBetween(from, to);
// Hringur í 3 km fjarlægð frá miðju, á 45 gráðu fresti
const ring = Array.from({ length: 8 }, (_, i) =>
computeOffset({ origin: center, distance: 3000, heading: i * 45 }));
const routeMeters = computeLength(routePoints);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 — nógu hratt og nógu nákvæmt
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.
Sporvölulíkan — sannar stystu leiðir
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).
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ð.
Mynd · hvernig smellprófun notar þetta
Stilltri stærð fingurgóms (rökrænar einingar) er breytt í skjápixla.
calculateMetersPerPixel breytir því í vikmörk í metrum fyrir núverandi aðdrátt og breiddargráðu.
Þ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.
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.
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.
Þí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.