2016-09-02 24 views
0

我正在一個項目,其中用戶選擇一個項目,服務器(PHP)檢索單元代碼(和這些單元格的地理座標)連接到該項目,應創建將由客戶端的JavaScript用來更新地圖的Json文件。PHP谷歌地圖api如何處理json文件

我想我明白必須創建google map api用來更新地圖的json文件。

那麼我應該如何處理這個服務器文件?我的意思是,每次請求完成後,我是否必須創建一個帶有隨機文件名的json文件,然後在將json文件返回給客戶端後刪除它或者是否存在任何不同且更好的方法?

回答

0

您是否聽說過標題?尤其是「內容類型」可能對你有意思,)

+0

有你有任何有用的鏈接我可以參考? –

0

說明:

通AJAX請求,並使用MySQL查詢的JSON得到響應數據。將響應數據饋送到圖表功能。

總之,您需要獲取數組值 - >轉換爲JSON並將這些值賦予Google圖表,而不管您是否需要使用mysql。根據您的要求修改代碼。

客戶端主PHP

<script> 
    drawLineChart('<?php echo strtolower($chartType); ?>'); 
</script> 

客戶端功能的PHP

function drawLineChart(chartType, chartTitle) { 
    google.charts.setOnLoadCallback(lineChartData); 

    function lineChartData() { 
     var lineChartJsonData = $.ajax({ 
      type: 'GET', 
      url: "<?php echo $server_script_path; ?>", 
      data: { id1: chartType, id2: "Chart" }, 
      dataType:"json", 
      async: false, 
      beforeSend: function() { 
      }, 
      success: function(data) { 
      }, 
     }).responseText; 

     var options; 
     options = { 
      title: chartTitle, 
      width: '390', 
      height: '300', 
      vAxis: {title: '<title>'}, 
     }; 

     var data = new google.visualization.arrayToDataTable(($.parseJSON(lineChartJsonData))); 
     var chart = new google.visualization.LineChart(document.getElementById(chartType)); 
     chart.draw(data, options); 
    } 
} 

服務器端的PHP文件

if ($_GET['id1'] != "" && $_GET['id2'] == "Chart") { 

    // Chart type 
    $chartType = explode('-', $_GET['id1'])[1]; 

    $sql = "<mysql query>"; 
    $result = mysqli_query($conn, $sql); 
    $table = array(); 
    $rows = array(); 
    $rows[] = array('<column1>', '<column2>'); 
    while($row = mysqli_fetch_array($result)) { 
     $rows[] = array('<rows>', '<rows>'); 
    } 
    $table = $rows; 
    echo json_encode($table); 
} 

請根據您的需要使用地理座標類型的圖表。

樣品線圖(我的陣列數據)

enter image description here

+0

好吧,這是有道理的。我設法構建了我的GeoJson變量,並將其發回給客戶端。它是一個正確的GeoJson變量,但mehtod map.data.loadGeoJson查找文件。有沒有其他方法可以使用類似geojson的變量更新Google地圖中的數據? –