1
lat = json.getJsonArray("data").getJsonObject(i).getDouble("lat");
lon = json.getJsonArray("data").getJsonObject(i).getDouble("lon");
Point p = new Point(lat, lon);
List<String> cells = GeocellManager.generateGeoCell(p);

上のコードを使用すると、次のようなセルを取得できます。

[9、9f、9ff、9fff、9fffe、9fffe1、9fffe13、9fffe136、9fffe1364、9fffe1364f、9fffe1364fb、9fffe1364fb7、9fffe1364fb76]

そして最後の要素「9fffe1364fb76」で、その要素はどのくらいの大きさを示していますか?

今、私は私が知っていることについてあなたに話します。

地球の地球の大きさは510,072,000Km^2です。

要素「9」は510,070,000km^2/16を意味します。

要素「9f」は(510,070,000km ^ 2)/(16 ^ 2)を意味します

..最後の要素「9fffe1364fb76」は(510,070,000km ^ 2)/(16 ^ 13)を意味します。

これは私がジオセルについて知っていることです。これは正しいですか?

そうでなければ、真実を教えてください... zzZ

4

1 に答える 1

2

場合によります。ジオセルは、[-90,90]x[-180,180]の緯度/経度の空間を部分的に分割します。長さ1のジオセル文字列は、この領域を16の部分に分割し、2つの次元のそれぞれを4つの部分に分割します。後続の各文字は、各次元を再び4で除算します。長さ13(最長のもの)の文字列では、各次元は4の係数で13回分割されています。つまり、4 ^ 13 = 67108864です。したがって、[-90,90]緯度間隔は180/67108864=2.68220901に分割されます。 E-6度、および[-180,180]経度間隔間隔は360/67108864 =5.36441802E-6度に分割されます。

これが距離に関してどれだけ大きいかは、地球上のどこにいるかによって異なります。これは、同じ量の度が、異なる緯度で異なる縦方向の距離に変換されるためです。赤道では、1度は両方向で111.319 kmに等しいため、赤道での最高解像度のジオセルは0.597mx 0.2985mであり、表面積は約0.18 m^2に相当します。

ポールでは、縦方向の長さがゼロに縮小します。その間、緯度60度では、ジオセルは正方形で、寸法は0.2985mx 0.2985m、表面積は0.089 m^2です。

于 2013-04-11T08:01:12.243 に答える