GeoGridUnitDistance[proj,loc,α]
位置 loc から α 方向への小移動の限界で評価された,投影法 proj で得られた地理格子上の単位距離に対応する実際の測地距離を与える.
GeoGridUnitDistance
GeoGridUnitDistance[proj,loc,α]
位置 loc から α 方向への小移動の限界で評価された,投影法 proj で得られた地理格子上の単位距離に対応する実際の測地距離を与える.
詳細とオプション
- GeoGridUnitDistanceは,与えられた場所の周りの地理投影によって引き起こされる局所的な距離の歪みを説明する.
- 地理格子単位距離の逆は,点スケールあるいは特定のスケールとしても知られている.
- GeoGridUnitDistanceは,大域的名義スケール(地理モデルと地図の基準モデルの縮小係数,伝統的に1:125000およびこれに類似したもの)と地理投影から導かれる名義スケールの局所的歪みを組み合せる.
- GeoGridUnitDistance[…]の結果は,(地球あるいはその他の天体の)地理モデル上のQuantity測地距離と投影された地理格子の無次元距離の比に対応する.
- 大きな領域(「大縮尺地図」)を含む地図上の点は測地距離スケールの大きい値に対応し,「小縮尺地図」 の点は測地距離スケールの小さい値に対応する.
- 地理格子単位距離がある点における方位角に依存しないとき,それはその点において等方的であると言われる.地理投影は,地理格子単位距離が,たとえその値が点ごとに異なるとしても,すべての点で等方的であるときかつそのときに限り等角である.
- 地理投影法は,デフォルトのパラメータを持つ名前付きの投影法"proj"として,あるいは {"proj",params}として与えることができる.ただし,"proj"はGeoProjectionDataの任意の実体で params は"StandardParallels"->{33,60}のようなパラメータの規則である.GeoProjectionData["proj"]は投影法"proj"のパラメータのデフォルト値を与える.
- 位置 loc は,度を単位とした座標のペア{lat,lon}として,GeoPosition[…]あるいはGeoGridPosition[…]のような地理位置オブジェクトとして,あるいは地理実体Entity[…]として与えることができる.
- 方位(角)の方向 α は真北から時計回りで測った角度である.これはQuantity角として,度数の数値として,あるいは"North","NE","NEbE"等の名前付きのコンパスの方向として与えることができる.
- GeoGridUnitDistanceはその位置と方向の引数に縫い込まれる.
- 次は,GeoGridUnitDistanceの使用可能なオプションである.
-
GeoModel Automatic 地球と天体のモデル UnitSystem $UnitSystem 結果に使用する単位系
例題
すべて開く すべて閉じる例 (2)
メルカトル図法によるコペンハーゲンの北東方向の単位地理距離を計算する:
scale = GeoGridUnitDistance["Mercator", Entity["City", {"Copenhagen", "Copenhagen", "Denmark"}], "NE"]コペンハーゲンを起点として北東方向に上記の長さの測地距離を進んだ場合の最終地点を計算する:
GeoDestination[Entity["City", {"Copenhagen", "Copenhagen", "Denmark"}], {scale, 45}]地図の単位でこれらの地点を繋ぐ測地経路と縮尺バーを比較する:
GeoGraphics[{Blue, Thick, GeoPath[{Entity["City", {"Copenhagen", "Copenhagen", "Denmark"}], %}]}, GeoProjection -> "Mercator", GeoScaleBar -> $UnitSystem, GeoRangePadding -> Quantity[30, "Kilometers"], Frame -> True]地図の単位がインチに対応している場合の従来の縮尺表記は,以下で示すように1:2468243である:
DecimalForm[scale / Quantity[1, "Inches"]]半径6371の基準球に基づいて,モルワイデ図法を使って平面地図を構築する:
proj = {"Mollweide", "ReferenceModel" -> 6371, "Centering" -> {0, 0}}この場合,ロンドンにおける投影距離の単位はこれら2つの値間の測地距離に対応する:
GeoGridUnitDistance[proj, Entity["City", {"Paris", "IleDeFrance", "France"}], MinMax]GeoGraphics[Entity["City", {"Paris", "IleDeFrance", "France"}], GeoProjection -> proj, GeoRange -> Max[%], GeoScaleBar -> $UnitSystem, Frame -> True]スコープ (9)
ユーザの現在の地理位置から北方向への地理投影についての地理格子単位距離を計算する:
GeoGridUnitDistance["Mollweide", Here, 0]これらは"Mollweide"(モルワイデ)図法のパラメータのデフォルト値である:
GeoProjectionData["Mollweide"]GeoGridUnitDistance[{"Mollweide", "ReferenceModel" -> 1000}, Here, 0]GeoGridUnitDistance[{"Mollweide", "Centering" -> {-40, 150}}, Here, 0]度を単位とした{lat,lon}のペアを使って位置を指定する:
GeoGridUnitDistance["Mercator", {-80.5, 30.32}, 60]GeoGridUnitDistance["Mercator", GeoPosition[{-80.5, 30.32}], 60]GeoGridUnitDistance["Mercator", GeoPositionXYZ[{911681, 533170, -6268998}], 60]GeoGridUnitDistance["Mercator", GeoGridPosition[{0.714285, -0.753047}, "Albers"], 60]地理Entityオブジェクトを使って位置を指定する:
GeoGridUnitDistance["Albers", Entity["City", {"Toronto", "Ontario", "Canada"}], -30]位置のリストについての,すべて同じ方向への測地距離スケールを計算する:
GeoGridUnitDistance["Mollweide", {GeoPosition[{10, 40}], GeoGridPosition[{-30.3, 20}, "Mercator"], {85, 178}}, 35]QuantityArray出力をその正規形に変換する:
%//NormalGeoGridUnitDistance["Equirectangular", {80, -40}, 95]同じ方位角をQuantity角として指定する:
GeoGridUnitDistance["Equirectangular", {80, -40}, Quantity[95, "AngularDegrees"]]GeoGridUnitDistance["Equirectangular", {80, -40}, Quantity[1, "Radians"]]同じ場所の異なる方位角のリストについて地理格子単位距離を計算する:
GeoGridUnitDistance["Equirectangular", {80, -40}, Range[0, 90, 15]]//Normalこの入力はQuantityArrayオブジェクトとして与えることができる:
% == GeoGridUnitDistance["Equirectangular", {80, 40}, QuantityArray[Range[0, 90, 15], "AngularDegrees"]]指定された位置における地理格子単位距離の使用可能な値の範囲を計算する:
GeoGridUnitDistance["UrmayevI", Entity["City", {"Moscow", "Moscow", "Russia"}], MinMax]整数度の各方位角についての値のMinMaxと比較する:
MinMax@GeoGridUnitDistance["UrmayevI", Entity["City", {"Moscow", "Moscow", "Russia"}], Range[-180, 180]]GeoGridUnitDistanceは,多くの位置についての値を効率的に処理する:
locs = RandomGeoPosition["World", 10 ^ 6];azims = RandomReal[{-180, 180}, 10 ^ 6];GeoGridUnitDistance["Mollweide", locs, azims]//AbsoluteTiming同じ基準モデルと測地モデルを選んでを名義尺度の影響を除去する:
scale[proj_, loc_, α_] := QuantityMagnitude[GeoGridUnitDistance[{proj, "ReferenceModel" -> 1}, loc, α, GeoModel -> 1], "Meters"]緯線と経線の地理格子単位距離の逆は,伝統的に h と k で表される:
h[proj_, loc_] := 1 / scale[proj, loc, 0];
k[proj_, loc_] := 1 / scale[proj, loc, 90];これらの円筒図法の動作は緯線に沿っては等しいが,経線に沿っては異なる:
Plot[{k["Mercator", {lat, 0}], k["Equirectangular", {lat, 0}], k["CylindricalEqualArea", {lat, 0}]}, {lat, 0, 90}, PlotLegends -> {"Mercator", "Equirectangular", "CylindricalEqualArea"}]Plot[{h["Mercator", {lat, 0}], h["Equirectangular", {lat, 0}], h["CylindricalEqualArea", {lat, 0}]}, {lat, 0, 90}, PlotLegends -> {"Mercator", "Equirectangular", "CylindricalEqualArea"}]オプション (2)
GeoModel (1)
デフォルトで,GeoGridUnitDistanceは地球についての値を返す:
GeoGridUnitDistance["Bonne", {50, -100}, 90]対応する月面の点について同じ計算を行うと,より小さいスケールが返される:
GeoGridUnitDistance["Bonne", {50, -100}, 90, GeoModel -> "Moon"]GeoGridUnitDistance["Bonne", {50, -100}, 90, GeoModel -> Quantity[2000, "Kilometers"]]UnitSystem (1)
特性と関係 (11)
地球のデフォルトの楕円体モデル上のメルカトル図法,位置,方向を取る:
proj = {"Mercator", "ReferenceModel" -> "ITRF00"};
p = GeoPosition[{89, 0}];
α = 50;p における α 方向の地理格子単位距離は,p と α 方向に向いた近くの点の間の真の距離と投影された距離の商の極限である:
projectedDistance[p_, q_, proj_] := EuclideanDistance[GeoGridPosition[p, proj]["GridXY"], GeoGridPosition[q, proj]["GridXY"]]Table[dist / projectedDistance[p, GeoDestination[p, {dist, α}], proj], {dist, Quantity[PowerRange[10 ^ 5, 0.01, 0.1], "Meters"]}]ListPlot[%, Joined -> True, PlotMarkers -> Automatic, Ticks -> {None, Automatic}]GeoGridUnitDistance[proj, p, α, GeoModel -> "ITRF00", UnitSystem -> "Metric"]GeoGridUnitDistanceは方位角で180度を周期として周期的である:
proj = {"Bonne", "Centering" -> {40, 0}};
p = GeoPosition[{80, 40}];F[θ_Real] := QuantityMagnitude[GeoGridUnitDistance[proj, p, θ], "Meters"]Plot[F[θ], {θ, -180, 360}]{FindMinimum[F[θ], θ], FindMaximum[F[θ], θ]}//Quiet{mindir, maxdir} = θ /. %[[All, 2]]GeoGraphics[{GeoCircle[p, 1000], Red, Arrow@GeoPath[{p, 1000, mindir}], Blue, Arrow@GeoPath[{p, 1000, maxdir}]}, GeoProjection -> proj]地理距離スケールは,指定された点における方位角によって大きく変化する:
proj = "Equirectangular";
p = Entity["Country", "Svalbard"]["CapitalCity"]Plot[GeoGridUnitDistance[proj, p, θ], {θ, 0, 360}]GeoGridUnitDistance[proj, p, MinMax]地理格子単位距離は,同じ投影法で同じ方位角でも点によって大きく変わることがある:
locs = RandomGeoPosition["World", 10000]GeoGridUnitDistance["LambertAzimuthal", locs, 20]MinMax[%]Histogram[%%]GeoGridUnitDistance["Albers", GeoPosition[{80, 30}], 30, GeoModel -> #]& /@ Quantity[{1, 10, 100, 1000, 10000}, "Kilometers"]地理格子単位距離は基準モデルおよび中心スケールパラメータと反比例する:
GeoGridUnitDistance[{"Albers", "ReferenceModel" -> #}, GeoPosition[{80, 30}], 30]& /@ {1, 10, 100, 1000, 10000}GeoGridUnitDistance[{"Albers", "CentralScaleFactor" -> #}, GeoPosition[{80, 30}], 30]& /@ {1, 10, 100, 1000, 10000}楕円図法では,地理格子単位距離は測地系または楕円体の選択に多少依存する:
GeoGridUnitDistance[{"Mercator", "ReferenceModel" -> #}, GeoPosition[{80, 30}], 30, GeoModel -> #]& /@ GeodesyData[]//MinMax等距離図法は,地図上の特殊経路に沿って一定した地理格子単位距離を持つ:
projs = GeoProjectionData["Equidistant"]円錐図法および円筒図法では,これは,大抵の場合,任意の場所で経線に沿って起こる:
points = RandomGeoPosition["World", 100]Table[GeoGridUnitDistance[{proj, "ReferenceModel" -> 1}, points, 0]//MinMax, {proj, {"ConicEquidistant", "CylindricalEquidistant", "Equirectangular", "GallIsographic"}}]方位角等距離図法では,これは,その中心からすべての方向で起こる:
GeoGridUnitDistance[{"AzimuthalEquidistant", "Centering" -> Here}, Here, RandomReal[{-180, 180}, 100]]//MinMax短い距離の場合,GeoDistanceは投影距離と地理格子単位距離の積として近似することができる:
p = GeoPosition[{15., 20.}];
q = GeoPosition[{15.05, 20.01}];d = GeoDistance[p, q]proj = "Albers";EuclideanDistance[GeoGridPosition[p, proj]["GridXY"], GeoGridPosition[q, proj]["GridXY"]]%GeoGridUnitDistance[proj, p, GeoDirection[p, q]]% / dp = GeoPosition[{15., 120.}];
q = GeoPosition[{88., 120.}];GeoGraphics[{Red, Thick, GeoPath[{p, q}]}, GeoProjection -> "VanDerGrintenII", Frame -> True, GeoGridLines -> Quantity[10, "AngularDegrees"], GeoRangePadding -> Quantity[15, "AngularDegrees"]]GeoGraphicsによって選択された図法を抽出し,投影点を計算する:
proj = GeoProjection /. Options[%, GeoProjection]gridp = GeoGridPosition[p, proj];gridq = GeoGridPosition[q, proj];これは,経線に沿った,投影された y 座標の関数としての地理格子単位距離である:
f[y_Real] := GeoGridUnitDistance[proj, GeoGridPosition[{0, y}, proj], 0, GeoModel -> "ITRF00"]NIntegrate[f[y], {y, gridp["GridY"], gridq["GridY"]}]% - GeoDistance[{p, q}]異なる投影法による同じ点の地理格子単位距離の区間を比較する:
projs = {"EckertGreifendorff", "Bonne", "Albers", "Mollweide", "Equirectangular"};p = GeoPosition[{15, 20}];NumberLinePlot[QuantityMagnitude[GeoGridUnitDistance[{#, "ReferenceModel" -> 1}, p, Interval], "Kilometers"]& /@ projs, PlotLegends -> projs]メルカトル図法のような正角図法による地理格子単位距離は等方性である(方位角に依存しない):
sphconformal = { "AugustEpicycloidal", "EquatorialStereographic", "HerschelConicConformal", "Lagrange", "LambertConicConformal", "Littrow", "Mercator", "ObliqueMercator", "PeirceQuincuncial", "Stereographic", "TransverseMercator"};GeoProjectionData[#, "Conformal"]& /@ sphconformalGeoGridUnitDistance[#, GeoPosition[Entity["City", {"NewYork", "NewYork", "UnitedStates"}]], MinMax]& /@ sphconformal投影された単位距離の実際の値は,指定された図法によって点ごとに異なる:
GeoGridUnitDistance["Mercator", {80, 0}, MinMax]GeoGridUnitDistance["Mercator", {40, 50}, MinMax]GeoGridUnitDistance["Mercator", {70, -150}, MinMax]等方性と緯度依存性はどちらも,Tissotの指示楕円を示す地図上ではっきりする:
GeoGraphics[Table[GeoDisk[{lat, lon}, Quantity[300, "Miles"]], {lat, -80, 80, 20}, {lon, -150, 150, 30}], GeoProjection -> "Mercator"]考えられる問題 (1)
地理位置が投影できない場合は,地理格子単位距離も計算できない:
GeoGridPosition[GeoPosition[{20, 120}], "Orthographic"]GeoGridUnitDistance["Orthographic", GeoPosition[{20, 120}], 90]この位置は,デフォルトの中心を使った"Orthographic"(正射)図法による地球の半分には含まれない:
GeoGraphics[GeoRange -> "World", GeoProjection -> "Orthographic", GeoGridLines -> Automatic]おもしろい例題 (1)
メルカトル図法によるさまざまな緯度の地理格子単位距離を比較する:
ratio[lat_] := QuantityMagnitude[GeoGridUnitDistance["Mercator", {lat, 0}, 90, GeoModel -> 180 / Pi], "Meters"];p[lat_, lon_] := {ratio[lat]lon, lat};points = Table[p[lat, lon], {lat, 0, 88, 11}, {lon, -180, 180, 30}];次の図は,低い緯度におけるスケールを下に表示し,より高い緯度に投影されたときにそれがどのように変化するかを示している:
Graphics[{Point[Flatten[points, 1]], Line /@ points, Thickness[.002], Red, Line /@ Transpose[points]}, Frame -> True]ip[lat_, lon_] := {1 / ratio[lat]lon, lat};ipoints = Table[ip[lat, lon], {lat, 0, 77, 11}, {lon, -180, 180, 30}];Graphics[{Point[Flatten[ipoints, 1]], Line /@ ipoints, Thickness[.002], Red, Line /@ Transpose[ipoints]}, Frame -> True, AspectRatio -> 1 / 5]テクニカルノート
テキスト
Wolfram Research (2019), GeoGridUnitDistance, Wolfram言語関数, https://reference.wolfram.com/language/ref/GeoGridUnitDistance.html.
CMS
Wolfram Language. 2019. "GeoGridUnitDistance." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/GeoGridUnitDistance.html.
APA
Wolfram Language. (2019). GeoGridUnitDistance. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GeoGridUnitDistance.html
BibTeX
@misc{reference.wolfram_2026_geogridunitdistance, author="Wolfram Research", title="{GeoGridUnitDistance}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/GeoGridUnitDistance.html}", note=[Accessed: 05-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_geogridunitdistance, organization={Wolfram Research}, title={GeoGridUnitDistance}, year={2019}, url={https://reference.wolfram.com/language/ref/GeoGridUnitDistance.html}, note=[Accessed: 05-July-2026]}