Google визуализация карта мира

0

Я пытаюсь получить результаты с помощью json, чтобы отобразить карту мира со списком стран.

Это то, что я получил до сих пор:

function drawRegionsMap() {
    $.ajax({
        url: 'getlist.php",
        dataType: "json"
    }).done(function(result) {
        var data = google.visualization.arrayToDataTable(result);

        var view = new google.visualization.DataView(data)
        view.setColumns([0, 1])
        var chart = new google.visualization.GeoChart(
            document.getElementById('map'));
        chart.draw(data, options);

        var geochart = new google.visualization.GeoChart(
            document.getElementById('map'));
        var options = {
            width: "auto",
            height: "auto",
            colorAxis: {
                colors: ['#E4B6D3', '#E06D94']
            } // Map Colors 
        };

        geochart.draw(data, options);
    });

};

google.load('visualization', '1', {
    'packages': ['geochart']
});
google.setOnLoadCallback(drawRegionsMap);

результат возвращается из getlist.php в формате json:

{
   "Country":[
      "Germany",
      "United States",
      "Brazil",
      "France",
      "RU"
   ],
   "Hits":[
      200,
      300,
      400,
      500,
      600,
      700
   ]
}

PHP-код:

  $data = array();
  $data['Country'] = array();
  $data['Hits'] = array();

  $country = array('Germany','United States','Brazil','France','RU');
  $hits = array(200,300,400,500,600,700);

  for ($i = 0; $i < 6; $i++){
      $data['Country'] = $country;
      $data['Hits'] = $hits;
  }

echo json_encode($data);

Глядя в консоль firebug, я всегда получаю: Ошибка: не массив, который я пытался решить эту головоломку в течение нескольких часов, но без успеха.

Теги:
google-maps

1 ответ

0
Лучший ответ

Возвращаемый результат - это объект, а не массив.

Ожидаемый массив:

[
 ["Country","Hits"],
 ["Germany",200],
 ["United States",300],
 ["Brazil",400],
 ["France",500],
 ["RU",600]
]

Измененный PHP-код, который возвращает этот массив:

<?php
  $data = array(['Country','Hits']);


  $country = array('Germany','United States','Brazil','France','RU');
  $hits = array(200,300,400,500,600,700);

  foreach ($country as $k => $v){
      $data[] = array($v,$hits[$k]);
  }

  echo json_encode($data);
?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню