对不起,如果这是问这个错误的地方,但我很难过。我正在查看 iOS 代码,如下所示。
- (NSString *)currentE6Location {
CLLocationCoordinate2D loc = [AppDelegate instance].mapView.centerCoordinate;
return [NSString stringWithFormat:@"%08x,%08x", (int)(loc.latitude*1E6), (int)(loc.longitude*1E6)];
}
所以这很简单..根据我的理解,他们正在采用纬度/经度并将其从浮点数更改为整数,然后将整数转换为在前面填充为 0 的十六进制数。所以十六进制值的长度是 8 个字符。我遇到的问题是在 python 中做同样的事情..
所以 iOS 应用程序发送十六进制值,如
36.968772,-122.013498 "0234194f,f8ba38ae"
第一组是纬度/经度,第二组大致是它们的十六进制值
纬度工作得很好
0234194f = 36968783
所以 36968783 / 1e6 = 36.968783(就像我说的这是两者之间的粗略估计)
但第二个很奇怪
f8ba38ae = 4172953774
如果它是 lon 的 - 值,则似乎在那里使用 4,因为您不能让负 int 具有十六进制值。所以放弃 4
172953774 / 1e6 = 172.953774 (so knowing the 4 is there it would be -172.953774)
所以我有点困惑为什么它适用于 lat 而不是 lon..
再次抱歉,如果这是错误的网站,请关闭。