为什么我们在 Google Maps API 中使用 mmap 时要添加这段代码?

发布于 2024-12-04 03:00:39 字数 847 浏览 1 评论 0 原文

net, cid, lac = 404415, 40962, 128
import urllib

# net = MCC 404 & MNC 415

a = '000E00000000000000000000000000001B0000000000000000000000030000'
b =hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8)
c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8)
string = (a + b + c+ 'FFFFFFFF00000000').decode('hex')

try:
    data = urllib.urlopen('http://www.google.com/glm/mmap',string)
    r = data.read().encode('hex')
    if len(r) > 14:
          print float(int(r[14:22],16))/1000000, float(int(r[22:30],16))/1000000
    else:
          print 'no data in google'
except:   
            print 'connect error'

我需要理解为什么我们需要将这种特定格式发送到 mmap 。特别是关于

a = '000E00000000000000000000000000001B0000000000000000000000030000'

以及为什么将“FFFFFFFF00000000”添加到字符串中。谁能解释一下吗?

net, cid, lac = 404415, 40962, 128
import urllib

# net = MCC 404 & MNC 415

a = '000E00000000000000000000000000001B0000000000000000000000030000'
b =hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8)
c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8)
string = (a + b + c+ 'FFFFFFFF00000000').decode('hex')

try:
    data = urllib.urlopen('http://www.google.com/glm/mmap',string)
    r = data.read().encode('hex')
    if len(r) > 14:
          print float(int(r[14:22],16))/1000000, float(int(r[22:30],16))/1000000
    else:
          print 'no data in google'
except:   
            print 'connect error'

I need to understand why we need to send this specific format to mmap . Especially regarding the

a = '000E00000000000000000000000000001B0000000000000000000000030000'

and why add 'FFFFFFFF00000000' to the string. Can anyone please explain this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滥情空心 2024-12-11 03:00:39

这只是一个猜测。

但我假设 a = '...' 是位置字符串,而 FFFFFF0000000 只是末尾的填充,以告诉 API 这是您的请求的结尾?

“a”字符串看起来如此奇怪的原因很可能是因为谷歌地图支持大量的东西,如街景、谷歌地点、图片等。所以在核心,这只是经度和纬度,但有一堆上面有额外的东西。

是的,这只是经度和纬度。
其余的只是填充。

Net、Cid 和 Lac 是 GPS 特定值,我认为 Cid 是您的 ID(CallerID 的缩写),而 Lac 是本地区域代码,所以您可能正在为 Android 做一些事情?

This is just a guess.

But i'm assuming the a = '...' is the location string and the FFFFFF0000000 is just a padding at the end to tell the API that this is the end of your request?

And the reason to why the "a" string looks so odd is most likely because google maps supports a hughe bunch of things such as Streetview, Google Places, pictures etc. So in the core, that's just longitude and latitude but with a bunch of extra stuff on it.

So yea, that's just Longitude and Latitude.
And the rest is just padding.

Net, Cid and Lac are GPS specific values, i think it's Cid that's the ID of you (short for CallerID) and the Lac are the local area code so you're probably doing something for the android?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文