Почему мы добавляем этот код при использовании mmap в Google Maps API? - PullRequest
1 голос
/ 12 сентября 2011
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' в строку.Может кто-нибудь объяснить это?

1 Ответ

0 голосов
/ 12 сентября 2011

Это всего лишь догадка .

Но я предполагаю, что a = '...' это строка местоположения, а FFFFFF0000000 это просто заполнение в конце, чтобы сказатьAPI, что это конец вашего запроса?

И причина, по которой строка "a" выглядит так странно, наиболее вероятна, потому что карты Google поддерживают огромную кучу вещей, таких как Streetview, Google Places, картинкии т.д. Итак, в основном, это просто долгота и широта, но с кучей дополнительных вещей.

Так что да, это просто долгота и широта.А остальное просто заполнение.

Net, Cid и Lac - это значения, специфичные для GPS, я думаю, что Cid - это ваш идентификатор (сокращенно CallerID), а Lac - это код локальной зоны, так что вы, вероятно,что-то делаете для андроида?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...