2014-02-25 1 views
0

Это, как я получаю значения широты и долготы из ответа Geocoder из Google карты, как показано на рисунке:Что это за терминология, относящаяся к: "latlong [0] .coordinates [0]"? от Google ответ Geocoder.geocode

latlong = Geocoder.geocode(city.find_element_by_xpath(statecol + '[' + str(statecolctr) + ']' + cities1 + str(statesctr) + ']' + cities2 + '[' + str(citiesctr) + ']' + cityname).text) 

Но теперь я надеюсь обойти делает Geocoder требует места, которые у меня уже есть широту и долготу от предыдущих выборок, хранящихся в SQLite3. Я хочу подражать конструкции, которая поступает из Google Geocode, так что следующая строка кода делает то же самое, независимо от того, пришел ли он из Google, или я построил его из двух строковых представлений широты и долготы, которые я вытащил в предыдущем вызове Geocoder.

floatlat = float(latlong[0].coordinates[0]) 
floatlng = float(latlong[0].coordinates[1]) 

Примером строки, которые я должен начать с (как хранится в SQLite3) является:

latlong = (u'32.6098566', u'-85.4807825') 

но от Google они выглядят как:

latlong = Birmingham, AL, USA 
latlong[0].coordinates[0] = 33.5206608, latlong[0].coordinates[1] = -86.80249 

Вы можете помочь я восстанавливаю первый латлон до второго, так что значения lat и long производятся, как показано во втором примере, как и если бы latlong был результатом ответа Google Geocode? (Только цифры, меня не интересует название города, являющееся его частью)

Благодарим вас за вашу любезную помощь, которую вы дадите всем!

+0

Вы хотите сказать, вы хотите ваш '' latlong'' иметь '' coordinates'' атрибут? Или вы хотите, чтобы ваши координаты * значения * соответствовали, то есть в настоящее время ваш '' latlong [0] '' не равен букмекеру '' latlong [0] .coordinates [0] '', но вы хотите, чтобы они были равны? – tsroten

+0

Nevermind, я перечитал его и понял, что вы хотите, чтобы ваши элементы '' latlong'' имели атрибут '' координат''. См. Мой ответ ниже. – tsroten

ответ

0

Вам нужно сделать класс, который имеет атрибут coordinates:

class Location(object): 
    def __init__(self, lat, lng): 
     self.coordinates = [lat, lng] 

loc = Location(33.5206608, -86.80249) 
latlong = [loc] 

print(latlong[0].coordinates[0]) 

распечаток: 33.5206608

+0

Я попробую, как только я вернусь к вещам. Мне интересно, что, когда я пытался это сделать, сообщение об ошибке состояло в том, что у моей конструкции не было координат «метода», когда вы используете термин «атрибут». В любом случае, я уверен, что это сработает. Спасибо!!!! – kenneth558

+0

Рад, что я могу помочь. Однако вы должны попытаться изменить свой код, чтобы он не требовал такого конкретного интерфейса объекта. Код, который я написал выше, отвечает на ваш вопрос, но я не думаю, что это хороший способ сделать что-то. – tsroten

+0

Вы были правы в терминах «атрибут», моя память плохая, я вижу сейчас на своем экране, спасибо! – kenneth558

 Смежные вопросы

  • Нет связанных вопросов^_^