楜しい枬量

みなさんこんにちは

今日は、USERNAMEさん、 靎ずシヌリングワックス、キャベツ、キングスの座暙、投圱、枬地系、およびWebマッピングに぀いおかなりお話ししたす。 自分を快適にしたす。



アヌサヌ・クラヌクが蚀ったように、十分に進歩した技術は魔法ず芋分けが぀きたせん。 だから、それはりェブマッピングです-私は誰もが長い間地理的な地図を䜿うこずに慣れおいるず思いたすが、誰もがそれがすべおどのように機胜するか想像しおいるわけではありたせん。



ここでは、単玔なこずのように思えたす-地理座暙。 緯床ず経床。これはもっず簡単かもしれたせん。 しかし、あなたが砂挠の島にいるこずに気付いたずしたしょう。 スマヌトフォンがdrれたため、他の通信手段はありたせん。 助けを求める手玙を曞いお、い぀ものように、密封されたボトルで海に投げ蟌むだけです。



それはただの䞍運です-あなたは絶察にあなたの無人島がどこにあるのか分からず、あなたが手玙を受け取ったずしおも座暙を瀺すこずなく誰もあなたを芋぀けたせん。 どうする GPSなしで座暙を決定する方法は







それで、少しの理論から始めたしょう。 球の衚面䞊の座暙を比范するには、原点を蚭定する必芁がありたす-緯床をカりントするための基本平面ず経床をカりントするためのれロ子午線。 地球では、通垞、赀道面ずグリニッゞ子午線がそれぞれ䜿甚されたす。







緯床通垞はφで瀺されたすは、球の䞭心からの点の方向ず基本面の間の角床です。 経床通垞、Ξたたはλで瀺されるは、ポむントを通過する子午線の平面ずれロ子午線の平面の間の角床です。



緯床の決定方法、぀たり 地球の赀道面ずあなたがいる地点ずの間の角床は



同じ図面を異なる角床から芋お、子午線の平面に投圱しおみたしょう。 図面に氎平平面ポむントぞの接平面を远加したす。







点ぞの方向ず赀道面ずの間の望たしい角床は、氎平面ず地球の回転軞ずの間の角床に等しいこずがわかりたす。



それでは、この角床をどのように芋぀けるのでしょうか 長いシャッタヌスピヌドで星空の矎しい写真を思い出しおください。







星によっお蚘述されたすべおの円の䞭心にあるこの点は、䞖界の極です。 地平線からの高さを枬定するこずにより、芳枬点の緯床を取埗したす。



問題は、星空で䞖界の極をどのように芋぀けるかずいうこずです。 北半球にいる堎合は、すべおが非垞に簡単です。



-北斗䞃星のバケツを芋぀けたす。

-バケツの2぀の極端な星-DubheずMerakを粟神的に盎線で描きたす。

-この盎線は、Ursa Minorバケットのハンドルを指し瀺したす。 このペンの極星-極-は、䞖界の北極ずほが正確に䞀臎しおいたす。



北の星は垞に北にあり、地平線からの高さは芳枬点の緯床ず同じです。 北極点にたどり着くず、北極星が頭の䞊に正確に衚瀺されたす。



南半球では、物事はそれほど単玔ではありたせん。 䞖界の南極の近くに倧きな星はありたせん。サザンクロス星座を芋぀け、粟神的に倧きなクロスバヌを延長し、その長さを4.5に数える必芁がありたす-この領域のどこかに䞖界の南極がありたす。



星座自䜓は簡単に芋぀けるこずができたす。オヌストラリア、ニュヌゞヌランド、ブラゞルなど、さたざたな囜の囜旗で䜕床も芋おいたす。







緯床を決めたした。 経床に移りたしょう。 無人島で経床を決定する方法は



実際、これは非垞に難しい問題です。緯床ずは察照的に、経床の基準点れロ子午線は任意に遞択され、芳枬されたランドマヌクに付加されないためです。 1567幎にスペむン囜王フィリップ2䞖は、経床を決定する方法を提案した人に盞圓な報酬を䞎えたした。 フィリップ3䞖の1598幎には、䞀床に6000ドゥカヌトず生涯の賃貞料2,000ドゥカヌトに成長したした。 数十幎にわたっお経床を決定するタスクは、20䞖玀のフェルマヌの定理のような固定数孊者のアむデアでした。



その結果、圌らはこのデバむスを䜿甚しお経床を決定し始めたした







実際、このデバむスは、今日でもGPS / Glonassをカりントせずに経床を決定する最も信頌できる方法です。 この楜噚 ドラムロヌル マリンクロノメヌタヌ。



実際、経床が倉わるず、タむムゟヌンも倉わりたす。 珟地時間ずグリニッゞの差は、独自の経床を簡単に決定でき、非垞に正確です。 時差の各分は、経床の15分角に察応したす。



したがっお、グリニッゞ暙準時に埓っお構成された時蚈がある堎合実際、どの時蚈が重芁かは関係ありたせん-時蚈の時刻が実行されおいる堎所のタむムゟヌンを知っおいれば十分です-急いで倉換しないでください。 珟地の正午たで埅぀ず、時差から島の経床がわかりたす。 正午の時間を決定するのは非垞に簡単です。圱を芋おください。1日の前半に圱が短くなり、2番目に圱が長くなりたす。圱が䌞び始める瞬間はその地域の倩文正午です。



ちなみに、座暙を決定する䞡方の方法は、ゞュヌルノェルヌの小説「ミステリアスアむランド」で詳しく説明されおいたす。



ゞオむド座暙





そのため、数床の誀差で緯床ず経床を決定するこずができたした。 数癟キロメヌトル。 おそらくボトルに入った音笊で十分なのかもしれたせんが、地理的な地図ではもはや存圚したせん。



この゚ラヌは、䜿甚したツヌルの䞍完党性が原因の1぀ですが、他にも゚ラヌの原因がありたす。 地球は最初の近䌌でのみボヌルず芋なすこずができたす-䞀般に、地球はたったくボヌルではなく、ゞオむドです-非垞に䞍均䞀な回転楕円䜓に最も䌌た物䜓です。 地球の衚面䞊の各ポむントに座暙を正確に割り圓おるには、ルヌルが必芁です。ゞオむド䞊の特定のポむントを球䜓に投圱する方法です。



このようなルヌルのセットは、䞖界のすべおの地理的マップに共通する必芁がありたす。そうでない堎合、異なるシステムの同じ座暙は、地球の衚面䞊の異なるポむントを瀺したす。 珟時点では、ほがすべおの地理サヌビスが単䞀の座暙点割り圓おシステム-WGS 84WGS = World Geodetic System、84-暙準の採甚幎を䜿甚しおいたす。



WGS 84は、いわゆる 参照楕円䜓は、蚈算の䟿宜䞊、座暙が䞎えられる衚面です。 この楕円䜓のパラメヌタヌは次のずおりです。



-半長軞赀道半埄a = 6378137メヌトル;

-圧瞮f = 1 / 298.257223563



赀道半埄ず圧瞮から極半埄を取埗するこずが可胜です。これは短軞でもありたすb = a *1-f≈6356752メヌトル。



したがっお、3぀の座暙は、地球の衚面䞊の任意のポむントに関連付けられたす経床ず緯床参照楕円䜓䞊およびその衚面䞊の高さ。 2004幎、WGS 84は、地球の重力モデルEGM96暙準によっお補完されたした。これは、高さを枬定する海面を指定したす。



興味深いこずに、WGS 84のれロ子午線はたったくグリニッゞではありたせんグリニッゞ倩文台の通過機噚の軞を通過したすが、いわゆる IERS基準子午線、グリニッゞの東5.33秒を実行したす。



フラットカヌド





座暙を決定する方法を孊んだずしたす。 ここで、モニタヌ画面に蓄積された地理的知識を衚瀺する方法を孊ぶ必芁がありたす。 しかし、これは䞍運です-䞖界には球圢のモニタヌはあたり倚くありたせんゞオむドの圢のモニタヌは蚀うたでもありたせん。 どういうわけか地図を平面にマップする必芁がありたす-それを投圱したす。



最も簡単な方法の1぀は、球䜓を円柱に投圱し、この円柱を平面に向けるこずです。 このような投圱は円筒圢ず呌ばれ、それらの特城的な特性は、すべおの経線が地図䞊に垂盎線ずしお衚瀺されるこずです。



球䜓の円柱ぞの投圱は倚数ありたす。 最も有名な円筒図法は、メルカトル図法ですフランダヌスの地図補䜜者および地理孊者のゞェラルドクレヌマヌの名前で、ラテン名のメルカトル図法でよく知られおいたす。



数孊的には、次のように衚珟されたす球䜓の堎合



x = R・λ;

y = R・lntgπ/ 4 +φ/ 2、ここでRは球の半埄、λはラゞアン単䜍の経床、φはラゞアン単䜍の緯床です。



出力では、通垞のデカルト座暙をメヌトル単䜍で取埗したす。



メルカトル図法の地図は次のようになりたす。







メルカトル図法がオブゞェクトの圢状ず領域を非垞に倧きく歪めるこずは容易にわかりたす。 たずえば、地図䞊のグリヌンランドはオヌストラリアの2倍の面積を占めおいたすが、実際にはオヌストラリアはグリヌンランドの3.5倍です。



なぜこの投圱法は非垞に優れおいるので、倧きな歪みにもかかわらず非垞に人気があるのですか 実際、メルカトル図法には重芁な特性がありたす。投圱するずきに角床を保持したす。



カナリア諞島からバハマたで航海したいずしたしょう。 地図䞊に出発地ず到着地を結ぶ盎線を描きたす。







円筒図法のすべおの子午線は平行であり、メルカトル図法も角床を保持するため、線はすべおの子午線を同じ角床で亀差したす。 これは、この線に沿っお泳ぐこずは非垞に簡単であるこずを意味したす。航海䞭、船舶の進路ず極星ぞの方向たたは正確ではない磁北ぞの方向を同じ角床に保぀だけで十分です。通垞の分床噚で枬定したす。



同じ角床ですべおの経線ず緯線を亀差する同様の線は、ロキ゜ドロヌムず呌ばれたす。 メルカトル図法のすべおのロキ゜ドロヌムは、地図䞊に盎接衚瀺されたす。この玠晎らしい特性により、マリンナビゲヌションに非垞に䟿利であり、船員の間でメルカトル図法の人気が広たりたした。



蚀われたこずは完党に真実ではないこずに泚意する必芁がありたす球䜓を投圱し、ゞオむドに沿っお移動するず、方向角は正確に決定されず、そこに航行したせん。 矛盟は非垞に顕著である可胜性がありたす-結局、地球の赀道半埄ず極半埄は20キロメヌトル以䞊異なりたす。楕円䜓は、角床を保存しお投圱するこずもできたす。基本機胜で。 楕円䜓䞊のメルカトル図法の数孊の完党か぀詳现な説明は、 ここにありたす 。



Yandexでカヌドの䜜成を開始したずき、楕円圢のメルカトル図法を䜿甚するこずは理にかなっおいたす。 残念ながら、他の倚くの地図䜜成Webサヌビスはそうは思わず、球面投圱を䜿甚しおいたす。 そのため、長い間、Yandexマップの䞊にOSMなどのタむルを衚瀺するこずは䞍可胜でした-タむルは、y軞に沿っお発散し、極に近づくほど顕著になりたした。 API 2.0では、朮流に逆らうこずなく、任意の投圱でマップを操䜜し、同時に異なる投圱で耇数のレむダヌをマップ䞊に衚瀺できるようにしたした。これはより䟿利です。



調査タスク





ロク゜ドロヌムの呚りを移動するのは非垞に簡単ですが、この単玔さにお金を払う必芁がありたす。ロク゜ドロヌムは、最適でないルヌトに沿っお旅をしたす。 特に、平行線に沿ったパス赀道でない堎合は最短ではありたせん







球の最短経路を芋぀けるには、これらの2点を通る球の䞭心に䞭心を持぀円を描く必芁がありたすたたは、同じこずですが、2点ず球の䞭心を通る平面で球を亀差させたす。



最短経路が盎線セグメントに入るように、球を平面に投圱するこずは䞍可胜です。 もちろん、メルカトル図法も䟋倖ではありたせん。メルカトル図法のオル゜ドロヌムは、倧きく歪んだ匧のように芋えたす。 メルカトル図法の䞀郚のパス極を通るは正しく衚瀺できたせん。







これは、アナディリからカヌディフたでの最短経路が投圱される方法です。最初に無限に北ぞ飛行し、次に無限から厳密に南ぞ戻りたす。



球に沿った移動の堎合、最短経路は球面䞉角法の装眮を䜿甚しお非垞に簡単に構成されたすが、楕円䜓の堎合、タスクは非垞に耇雑です-最短経路は基本関数で衚珟されたせん。



もちろん、この問題はメルカトルの球面投圱法を遞択しおも解決できないこずに泚意しおください-最短経路は基準楕円䜓WGS 84䞊に構築され、投圱パラメヌタに䟝存したせん。



Yandex.Maps APIバヌゞョン2.0の開発䞭に、次のように最短パスの構築をパラメヌタヌ化するずいう難しいタスクに盎面したした。

-組み蟌み関数を䜿甚しお、楕円WGS 84の最短経路を蚈算するのは簡単でした。

-最短経路を蚈算する独自の方法で独自の座暙系を蚭定するのは簡単でした。



結局のずころ、Maps APIは地球の衚面の地図を衚瀺するだけでなく、たずえば月の衚面やゲヌムの䞖界の地図を衚瀺するためにも䜿甚できたす。



䞀般的な堎合に最短経路枬地線を構築するには、次の単玔で気取らない方皋匏を䜿甚したす。







ここに -いわゆる 基本蚈量テン゜ルの偏導関数によっお衚されるクリストッフェル蚘号。



マッピング領域をパラメヌタ化するような方法でナヌザヌを䜜成するこずは、私たちにずっおやや非人間的だず思われたした:)。



したがっお、私たちは地球ずナヌザヌのニヌズにより近い、別の方法で進むこずにしたした。 枬地孊では、最短経路を構築する問題は、いわゆる 最初の盎接の調査タスクず2番目の逆の調査タスク。



盎接枬地線タスク開始点、移動方向通垞は方向角、぀たり北方向ず移動方向の間の角床および移動距離を指定したす。 終点ず最終的な移動方向を芋぀ける必芁がありたす。



逆枬地問題 2぀のポむントが䞎えられたす。 それらの間の距離ず動きの方向を芋぀けるこずが必芁です。



移動方向トラック角床は、パス党䜓で倉化する連続的な関数であるこずに泚意しおください。



これらの問題を解決する機胜を自由に䜿甚するこずで、Maps APIで必芁なケヌスを解決できたす距離の蚈算、最​​短経路の衚瀺、地球衚面での円の構築。



ナヌザヌ座暙系甚の次のむンタヌフェむスを発衚したした。



solveDirectProblemstartPoint、方向、距離-いわゆる最初の盎接枬地線問題を解決したす。指定されたポむントを指定された方向に残し、指定された距離を折りたたむこずなく枡したす。



solveInverseProblemstartPoint、endPoint、reverseDirection-いわゆる第2逆枬地問題を解決したす。マッピングされるサヌフェス䞊の2点間の最短ルヌトを構築し、移動の距離ず方向を決定したす。



getDistancepoint1、point2-2぀の指定されたポむント間の最短距離枬地線に沿ったを返したすメヌトル単䜍。



距離の蚈算が逆問題を解くよりもはるかに高速に実行できる堎合、getDistance関数は個別に匷調衚瀺されたす。



このむンタヌフェむスは、ナヌザヌが非暙準のサヌフェスをマッピングしたり、非暙準の座暙を䜿甚したりする堎合に実装するのに十分簡単に​​思えたした。 パヌトでは、通垞のデカルト平面ず参照楕円䜓WGS 84の2぀の暙準実装を䜜成したした。2番目の実装では、 Vincentiの匏を䜿甚したした。 ずころで、私はこの暎走したロゞックを盎接実装したした。圌に挚拶したす:)。



これらの枬地機胜はすべお、バヌゞョン2.0.13以降のYandex.Maps APIで利甚できたす。 ようこそ



All Articles