3

私はAndroidアプリで緯度/経度を使用しています。なぜ人々はそれらを1E6に変換するのですか?(すなわち* 1000000)それは不必要なステップのようです。メリットは何ですか?値を単にdoubleまたはfloatとして格納することはできませんか?説明してください。ありがとう -

4

3 に答える 3

12

なぜ人々はそれらを1E6に変換するのですか?

Google マップのアドオン API で必要になるためです。

メリットは何ですか?値を単純に double または float として格納することはできませんか?

デスクトップ PC (ノートブックは言うまでもなく) がいつ浮動小数点コプロセッサを搭載していないかを思い出すには、おそらくあなたは若すぎます。486SX または 486DX CPU を購入することを選択します。SX バリアントは安価ですが、浮動小数点コプロセッサがありません。浮動小数点コプロセッサのない CPU でも浮動小数点計算を実行できますが、非常に遅くなります。Intel は、Pentium プロセッサを作成したときに SX/DX 分割全体をダンプしたため、ほとんどの従来の PC では、これはしばらくの間問題になりませんでした。

ただし、最初の数世代の Android デバイスの心臓部であった ARMv5 CPU には、浮動小数点コプロセッサもありませんでした。そのようなデバイスで Java 浮動小数点演算を実行しようとすると、速度が遅くなり、Google マップには遅すぎました。そこで、彼らは単位を度からマイクロ度に切り替えて、すべての計算を固定小数点演算で実行できるようにしました。これは許容できる速さでした。

于 2012-07-03T19:12:43.013 に答える
2

私は以前 GPS デバイスを使用していましたが、主に次の理由でそのような変換を行っていました。

  1. 精度の高い最新かつ最高の軍用 GPS デバイスを使用しない限り、1E6 より大きい値を持つことは実際には意味がありません。
  2. 1E6int4 バイトの を保持できるため、double
于 2012-07-03T19:13:49.100 に答える
0

1E6 を超える精度は、Google の API の選択によると十分に正確ではありません。これにより、Google のような複雑なマッピング システムに必要なマップ ポイントの大規模な品揃えのためのスペースが節約されます。

于 2012-07-03T19:07:56.190 に答える