Геокодер карт Google не определен

Я попытался использовать параметр dtypes = [datetime, ...], но

import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4'] 
dtypes = [datetime, datetime, str, float] 
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)

Я обнаружил следующую ошибку:

TypeError: data type not understood

Единственное изменение, которое я имел сделать, чтобы заменить datetime на datetime.datetime

import pandas as pd
from datetime import datetime
headers = ['col1', 'col2', 'col3', 'col4'] 
dtypes = [datetime.datetime, datetime.datetime, str, float] 
pd.read_csv(file, sep='\t', header=None, names=headers, dtype=dtypes)
-1
задан geocodezip 29 March 2019 в 13:55
поделиться

2 ответа

Причина, по которой он не работает, заключается в том, что вы пытаетесь использовать API Google Maps СЛИШКОМ РАННЕЕ

Согласно документации: https://developers.google.com/ карты / документация / javascript / tutorial

Атрибут async позволяет браузеру отображать остальную часть вашего веб-сайта, пока загружается JavaScript API Карт. Когда API будет готов, он вызовет функцию, указанную с помощью параметра обратного вызова.


Создайте функцию javascript, назовите ее как угодно, затем в теге скрипта, который вы используете для вызова API Google Maps, добавьте следующий параметр:

&callback=YOUR_FUNCTION_NAME_HERE [1113 ]

var map, geocode;
var companies = {
Google: '1600 Amphitheatre Parkway in Mountain View'
};

function initMap(){

map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: -34.397, lng: 150.644},
  zoom: 8
});

geocoder = new google.maps.Geocoder();


Object.keys(companies).forEach(function(key) 
{
  var companyName = key;
  var comapnyLocation = companies[key];
  console.log('Key : ' + key + ', Value : ' + companies[key])
  geocoder.geocode( { 'address': comapnyLocation}, function(results, status) {

  console.log("Results:", results );
      
    if (status == 'OK') {
        console.log(results[0].geometry.location);
    } else {
      alert('Geocode was not successful for the following reason: ' + status);
    }
  });
});
}
<script async defer
  src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

Результаты

enter image description here

0
ответ дан Craig Wayne 29 March 2019 в 13:55
поделиться

Прежде всего, мои извинения @CraigWayne. Я уверен, что его ответ поможет другим, но, поскольку я не смог дать полную информацию в своем вопросе, он не мог ожидать, что он даст ответ.

Я кодирую в AngularJs 1.x, и я использую NgMap .

Итак, когда Крейг предлагает дождаться полной загрузки карты, я подозреваю, что директива NgMap <map> об этом позаботится.

Что сработало для меня - хотя я не знаю, как - было заменить объявление

var geocoder = new google.maps.Geocoder();

и geocoder.geocode( { 'address': comapnyLocation}, function(results, status) на

var url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' +  
            comapnyLocation +'&key=XXXX';

$http.get(url)

, что дает результаты, которые указал Крейг (в data.results).

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

0
ответ дан Mawg 29 March 2019 в 13:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: