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)。

这就是我对 geocell 的了解。这是正确的吗?

否则,请告诉我真相...zzZ

4

1 回答 1

2

这取决于。Geocells 将 [-90,90] x [-180,180] 纬度/经度空间分成几部分。长度为 1 的土工格串将该区域分为 16 个部分,两个维度中的每一个分为 4 个部分。每个连续字符将每个维度再次除以 4。用一个长度为13(最长的)的字符串,每个维度都被以4的因子划分了13次,即4^13 = 67108864。所以[-90,90]纬度区间被划分为180 / 67108864 = 2.68220901 E-6 度,[-180,180] 经度区间区间分为 360 / 67108864 = 5.36441802 E-6 度。

就距离而言,这有多大取决于您在地球上的位置,因为相同的度数在不同的纬度上转化为不同的纵向距离。在赤道上,1 度在两个方向上都等于 111.319 公里,因此赤道上最高分辨率的地理单元测量为 0.597mx 0.2985m,对应的表面积约为 0.18 m^2。

在极点处,纵向长度收缩为零。其间,在纬度 60 度处,土工格室呈正方形,尺寸为 0.2985mx 0.2985m,表面积为 0.089 m^2。

于 2013-04-11T08:01:12.243 回答