Обратное геокодирование - соединение не может быть установлено, потому что целевая машина активно отказалась от него ' - PullRequest
0 голосов
/ 16 июня 2020

У меня есть учетная запись Freemium и сгенерировано 2 ключа REST API. Когда я использую один из ключей, я получаю следующую ошибку -

HTTPConnectionPool (host = 'batch.geocoder.ls.hereapi.com', port = 80): Превышено максимальное количество повторных попыток с url: /6.2/ рабочие места? prox =% 5B24,47% 2C + 24,78% 2C + 48,2% 2C + -33,87% 2C + 50,85% 2C + 26,21% 2C + -22,92% 2C + -22,34% 2C + 50,91% 2C + 47,41% 2C + -33,39% 2C + 39,92 % 2C + 39,79% 5D% 2C% 5B54.34% 2C + 55,6% 2C + 16,36% 2C + 151,21% 2C + 4,36% 2C + 50,57% 2C + -43,24% 2C + -49,05% 2C + -114,07% 2C + 8,54% 2C + -70.52% 2C + 116.17% 2C + 116.51% 5D & mode = retrieveAddresses & maxresults = 1 & gen = 9 & apiKey = -l7nmoOoBBAH3fHWUg2QYL6FB3qLcEvb88MRFTUuE5A (Вызвано из-за ошибки NewConnectionError в соединении с целью создания нового соединения: * Ошибка соединения NewConnectionError: 10 машина активно отказалась от него '))

Я следую [https://developer.here.com/blog/reverse-geocoding-a-location-using-python] Я также следил за документами, чтобы создать свой запрос GET [https://developer.here.com/documentation/examples/rest/geocoder/reverse-geocode] У меня есть не знаю, что происходит. Я застрял на прошлой неделе, пытаясь понять это. Это выше меня. Я новичок в программировании, python, stackoverflow .... все! Техническая поддержка, не могли бы вы посоветовать? Спасибо.

Я использую Python. Цель состоит в том, чтобы отменить геокодирование 25 000 точек из файла CSV и записать в файл CSV. Мой код для обратного геокодирования -

# Request URL
request_url = "https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json"

# API key
#api_key1 = 'MY API KEY 1'
api_key2 = 'MY API KEY 2'

# setting the parameters to be sent along with the request_url in the GET request
parametres = {
                'prox': '{},{}'.format(latitude_list,longitude_list),
                'mode': 'retrieveAddresses',
                'maxresults': 1,
                'gen': 9,
                'apiKey': api_key2                 
             }

# send a GET request
response = requests.get (url = request_url, params = parametres)
print(response.status_code)

# check if the request was successful and get the JSON response data
if response.status_code == 200:
    print('Request successful.')
    data = response.json()
    print(data)
else:
    print('Request failed.')

1 Ответ

0 голосов
/ 17 июня 2020

Привет, пожалуйста, проверьте здесь правильный рабочий код -

import random
import time
import pandas as pd
import requests


latitude = 12.9716
longitude = 77.5946
file_name = 'data.csv'


def generate_random_data(lat, lon, num_rows, file_name):
    with open(file_name, 'a') as output:
        output.write('timestamp,latitude,longitude\n')
        for _ in range(num_rows):
            time_stamp = time.time()
            generated_lat = random.random()/100
            generated_lon = random.random()/100
            output.write("{},{},{}\n".format(
                time_stamp, lat+generated_lat, lon+generated_lon))


generate_random_data(latitude, longitude, 10, file_name)

# To read 6th row data
data = pd.read_csv("data.csv", skiprows=5, nrows=1)

# To print the values
print(data)

# To convert values into list
list_value = data.values.tolist()

# Latitude and Longitude
latitude = list_value[0][1]
longitude = list_value[0][2]

print(latitude, longitude)

request_url = "https://reverse.geocoder.ls.hereapi.com/6.2/reversegeocode.json"

# API key

api_key = 'your rest api key'

# setting the parameters to be sent along with the request_url in the GET request
parametres = {
    'prox': '{},{}'.format(latitude, longitude),
    'mode': 'retrieveAddresses',
    'maxresults': 1,
    'gen': 9,
    'apiKey': api_key
}

# send a GET request
response = requests.get(url=request_url, params=parametres)
print(response.status_code)

# check if the request was successful and get the JSON response data
if response.status_code == 200:
    print('Request successful.')
    data = response.json()
    print(data)
else:
    print('Request failed.')

, и он даст следующий ответ:

Запрос выполнен. {'Response': {'MetaInfo': {'Timestamp': '2020-06-17T11: 50: 24.706 + 0000'}, 'View': [{'_type': 'SearchResultsViewType', 'ViewId': 0, 'Результат': [{'Релевантность': 1,0, 'Расстояние': -429,0, 'Направление': 16,2, 'MatchLevel': 'район', 'MatchQuality': {'Страна': 1,0, 'Штат': 1,0, 'County': 1.0, 'City': 1.0, 'District': 1.0, 'PostalCode': 1.0}, 'Location': {'LocationId': 'NT_ncA49aCPF2GKSWJE4kP26 C', 'LocationType': 'area', ' DisplayPosition ': {' Latitude ': 12.98721,' Longitude ': 77.60402},' MapView ': {' TopLeft ': {' Latitude ': 12.99579,' Longitude ': 77.58896},' BottomRight ': {' Latitude ': 12.97306 , 'Longitude': 77.61544}}, 'Address': {'Label': 'Shivajinagar, Bengaluru, KA, India', 'Country': 'IND', 'State': 'KA', 'County': 'Bengaluru ',' Город ':' Бангалор ',' Район ':' Шиваджинагар ',' Почтовый код ':' 560051 ',' Дополнительные данные ': [{' значение ':' Индия ',' ключ ':' CountryName '}, { 'value': 'Карнатака', 'key': 'StateName'}, {'value': 'Bengaluru', 'key': 'CountyName'}]}, 'MapReference': {'ReferenceId': '846137 287 ',' MapId ':' RRAM20115 ',' MapVersion ':' Q1 / 2020 ',' MapReleaseDate ':' 2020-06-08 ',' SideOfStreet ':' ни ',' CountryId ':' 22806254 ',' StateId ':' 22798588 ',' CountyId ':' 22799633 ',' CityId ':' 22803543 ',' DistrictId ':' 28032363 '}}}]}]}}

Надеюсь, это поможет!

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