Skip to content

dev'geo_object_api'address_mode

Usagi Ito edited this page Nov 15, 2017 · 1 revision

頂点を設定する際のグローバルアドレスモードとローカルアドレスモード

  • GeoObject は 2 つのアドレスモードの何れか、すなわちグローバルアドレスモードまたはローカルアドレスモードの何れかの状態を持ちます。

グローバルアドレスモードの特徴

  • 全ての頂点が高度と経緯度による地球上での絶対位置 { altitude(m), latitude(deg), longitude(deg) } によって設定されます。
  • GeoObject を代表する Location は頂点群の先頭の頂点となります。
  • SetLocation を行うと全ての頂点に対して現在の頂点位置からの差分による更新が必要となるため、頻繁に Location を変更する用途には向きません。
  • 県境など比較的広い範囲や、経緯度によって表されるソースデータを表現したい場合に適しています。

ローカルアドレスモードの特徴

  • 全ての頂点が Location からの地表上での相対距離 { altitude(m), axial(m), equatorial(m) } によって設定されます。
    • axial 軸は Location における latitude 軸の接線と等価な直線軸です。 Location における北向きが + です。
    • equatorial 軸は Location における longitude 軸の接線と等価な直線軸です。 Location における東向きが + です。
  • ローカルアドレスモードの GeoObject は頂点の他に Location が設定されなければなりません。
    • Location は { altitude(m), latitude(deg), longitude(deg) } で設定します。
  • SetLocation を行っても高々1つの Location 値を更新するだけで済み、全ての頂点群を更新する必要が無いため、頻繁に Location を変更する用途にグローバルアドレスモードより適しています。
  • 建築物などの比較的狭い範囲や、ある地点からの相対的な地表での長さで表されるソースデータを表現したい場合に適しています。

設定

  • グローバルアドレスモードとローカルアドレスモードは頂点群を設定する際に SetVertexGlobalSetVertexLocal の何れを用いるかによって設定されます。

変換

  • 一旦設定されたアドレスモードを相互に変更したい場合には GeoObject.ConvertVertexModeFromLocalToGlobal または GeoObject.ConvertVertexModeFromGlobalToLocal を用います。
    • 但し、この変換は計算精度上の誤差を発生する可能性があります。予め GeoObject の目的にあったアドレスモードで頂点を設定し変換は必要最小限に留める事をお勧めします。

確認

  • IsGlobalAddress の結果が true の場合にはグローバルアドレスモードです。 false の場合にはローカルアドレスモードです。
Clone this wiki locally
You can’t perform that action at this time.