2016-07-05 4 views
1

У меня возникли проблемы с загрузкой маркеров Geochart на карту. Сценарий, предоставляемый Google, отображает пустую карту на моем веб-сайте, но маркеры и карта отображаются так же, как и на jsfiddle. Любая помощь приветствуется.Маркеры не появятся на GeoChart, но карта отобразится просто отлично

Вот код:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

<script type="text/javascript"> 

google.charts.load('current', {'packages': ['geochart']}); 
google.charts.setOnLoadCallback(drawMarkersMap); 

    function drawMarkersMap() { 
    var data = google.visualization.arrayToDataTable([ 
    ['City', 'Collaborator'], 
    ['Detroit', "text here"], 
    ['Cleveland', "text here"], 
    ['Joondalup', "text here"], 
    ['Wanaka', "text here"] 
    ['Liverpool', "text here"], 
    ['Styria', "text here"], 
    ['Edwardsville', "text here"], 
    ['Austin', "text here"], 
    ['Houston', "text here"], 
    ['Stockholm', "text here"], 
    ]); 

    var options = { 
    region: 'world', 
    displayMode: 'markers', 
    backgroundColor: '#252426', 
    colorAxis: {colors: ['blue']}, 
    magnifyingGlass: {enable: false}, 
    defaultColor: '#f1910e', 
    enableRegionInteractivity: 'true', 
    }; 

    var chart = new google.visualization.GeoChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
}; 
</script> 

ответ

1

Я понял! Очевидно, теперь google теперь требует, чтобы ключ API отображал маркеры на геочартах. Вот модифицированный, функциональный скрипт. Вторая строка - единственное изменение.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?key=YOUR_API_KEY_GOES_HERE" async="" defer="defer"></script> 

<script type="text/javascript"> 

google.charts.load('current', {'packages': ['geochart']}); 
google.charts.setOnLoadCallback(drawMarkersMap); 

function drawMarkersMap() { 
var data = google.visualization.arrayToDataTable([ 
['City', 'Collaborator'], 
['Detroit', "text here"], 
['Cleveland', "text here"], 
['Joondalup', "text here"], 
['Wanaka', "text here"] 
['Liverpool', "text here"], 
['Styria', "text here"], 
['Edwardsville', "text here"], 
['Austin', "text here"], 
['Houston', "text here"], 
['Stockholm', "text here"], 
]); 

var options = { 
region: 'world', 
displayMode: 'markers', 
backgroundColor: '#252426', 
colorAxis: {colors: ['blue']}, 
magnifyingGlass: {enable: false}, 
defaultColor: '#f1910e', 
enableRegionInteractivity: 'true', 
}; 

var chart = new google.visualization.GeoChart(document.getElementById('chart_div')); 
chart.draw(data, options); 
}; 
</script> 

Ключи API бесплатны через Google, если ваш сайт не получает слишком много трафика. Вам нужно будет зарегистрировать «ключ браузера». Вот ссылка для его настройки: https://developers.google.com/maps/documentation/javascript/get-api-key

+0

Любые предложения, позволяющие использовать переменную среды или что-то для ключа api, чтобы ключ api не был жестко закодирован (что представляет собой угрозу безопасности)? – Jack

+0

http://stackoverflow.com/questions/39625587/how-do-i-securely-use-google-api-keys –

0

Исходя из этого forum, похоже, ваша сеть может блокировать геокодирования. GeoChart необходимо геокодировать маркеры, чтобы знать, где их рисовать.

Отметьте этот раздел SO thread и example from GitHub.

function drawVisualization() { 
    var data = google.visualization.arrayToDataTable([ 
    ['State', 'Foo Factor'], 
    ['US-IL', 200], 
    ['US-IN', 300], 
    ['US-IA', 20], 
    ['US-RI', 150] 
    ]); 

    var geochart = new google.visualization.GeoChart(
     document.getElementById('visualization')); 
    geochart.draw(data, {width: 556, height: 347, region: "US", resolution: "provinces"}); 
} 

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

+0

Спасибо за ответ! Я нашел несколько консольных ошибок, которые, по-видимому, были результатом моего рекламного блока. После отключения блокировщик рекламы, была только одна ошибка консоли, которые я думаю, может быть проблема: «Google Maps API Error: MissingKeyMapError» Я сгенерировал ключ API, но теперь я не знаю, как/где чтобы вставить его в скрипт. –