0

Я пытаюсь использовать API Google Maps v3 API от Biostall, чтобы отобразить ряд адресов, но когда я пытаюсь ввести адрес, Lon Lat производит 0, 0 каждый раз , Он работает только в том случае, если я специально задал долготу и широту каждого адреса. Даже записи, которые Biostall использовал в своем примере видео и документации, не работают. Я также пытаюсь использовать функцию geocodeCaching, пожалуйста, помогите.Codeigniter API Карт Google V3 Геокодирование не работает

$this->load->library('googlemaps'); 

$config = array(); 
$config['zoom'] = 'auto'; 
$config['geocodeCaching'] = TRUE; 
$config['region'] = 'US'; 
$config['sensor'] = FALSE; 
$this->googlemaps->initialize($config); 

$marker = array(); 
$marker['position'] = '37.429, -122.1519'; 
$marker['animation'] = 'DROP'; 
$this->googlemaps->add_marker($marker); 

$marker = array(); 
$marker['position'] = '1600 Amphitheatre Parkway in Mountain View, Santa Clara County, California United States'; 
$marker['animation'] = 'DROP'; 
$this->googlemaps->add_marker($marker); 

$data['map'] = $this->googlemaps->create_map(); 

echo print_r($data['map']['markers']); 

Выходной маркер:

Array ([marker_0] => Array ([широта] => 37,429 [долготы] => -122,1519) [marker_1] => Array ([ широта] => 0 [долготы] => 0)) 1

Это карта производства: Map Produced

Предложение

BIOSTALL в выводимый это: Lat: 0 LNG: 0 Err: OVER_QUERY_LIMIT data_location: http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway+in+Mountain+View%2C+Santa+Clara+County%2C+California+United+States&sensor=false&region=US

ответ

1

Спасибо за использование моей библиотеки. У меня есть несколько предложений:

1) попробуйте добавить ', United States' в конец положения маркера.

2) Я считаю, что есть параметр «региона», который вы можете установить на карте. Попробуйте установить это в «США».

3) если он все еще не работает, попробуйте войти в библиотеку и найдите функцию get_lat_lon_from_address(), а затем выведите результат запроса URL-адреса.

Я надеюсь, что это поможет. Я собираюсь взглянуть на добавление режима отладки в ближайшее время, что должно помочь в таких проблемах. Дайте мне знать, если какие-либо другие вопросы, хотя :)

Steve

+0

Спасибо @BIOSTALL, Тем не менее, вам не повезло. Я попытался добавить в код региона и «Соединенные Штаты» в конце адреса, как вы сказали, и все тот же результат. Когда я распечатываю код ошибки в нижней части get_lat_lon_from_address(), он считывает OVER_QUERY_LIMIT. Когда я копирую и миную ссылку в свой браузер, я получаю данные json из Google. Я только делаю 1 запрос геокодирования, почему это происходит? – MikeTrottman

1

Когда он дает OVER_QUERY_LIMIT с PHP это может означать, что ваш IP заблокирован. Особенно, когда вы пытаетесь слишком много адресов, а также когда вы не дожидаетесь достаточного количества запросов. Попытайтесь добавить паузу между каждым запросом, но, скорее всего, вы можете только ждать, пока IP снова станет свободным (очень раздражает), или вы можете попробовать JavaScript на стороне клиента. Я не знаю точную причину, но обратный геокод работает лучше на стороне клиента и с JavaScript. Вы также можете получить платный сервис от Google или использовать OpenStreetMap.

+0

Спасибо! Я подождал немного дольше, и теперь он работает. Я должен буду следить за этой функцией, чтобы убедиться, что она не повторится, пока мои клиенты ее используют. Либо это, либо зарегистрируйтесь для API Карт Google для бизнеса. – MikeTrottman

+0

Thats дорогой 10k в год? – Bytemain

+0

Sheesh, это действительно так много? Ой! – MikeTrottman

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