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
最佳答案
这取决于。地理单元将[-90,90] x [-180,180]纬度/经度空间划分为多个部分。长度为1的Geocell字符串将这个区域分为16个部分,两个维度中的每一个均分为4个部分。每个子执行字符再次将每个维度除以4。对于长度为13(最长的长度)的字符串,每个维度已被13次除以4,即4 ^ 13 =67108864。因此[-90,90]纬度区间被分为180/67108864 = 2.68220901 E-6度,并且[-180,180]经度间隔间隔分为360/67108864 = 5.36441802 E-6度。
距离的大小取决于您在地球上的位置,因为相同的度数会转换为不同纬度上的不同纵向距离。在赤道上,一个方向在两个方向上均等于111.319 km,因此,赤道上最高分辨率的土工格盒尺寸为0.597m x 0.2985m,对应的表面积约为0.18 m ^ 2。
在极点处,纵向长度缩小为零。在其之间,纬度为60度,土工单元为正方形,尺寸为0.2985m x 0.2985m,表面积为0.089 m ^ 2。