簡體   English   中英

發布到GEOJSON Google將數據映射到我的遠程服務器上的json文件

[英]Posting toGEOJSON Google maps data to a json file on my remote server

作為編程新手,我已經堅持了幾天。 我已經從該站點和其他站點研究了下面的所有代碼,以成功解決該問題。

我可以使用以下命令從服務器上的json文件成功將數據加載到Google Maps:

map.data.loadGeoJson('http://www.h...........com/geojson/164_surveydata.json');
map.data.setStyle({
      editable: false,
      draggable: false,
      strokeWeight: 2,
      strokeColor: '#686868',
    });

然后,我可以編輯折線,將節點移動到新位置。

然后,我嘗試使用面板按鈕onclick函數保存編輯后的地圖數據層:

function saveData() {

map.data.setStyle({
  editable: false,
  strokeWeight: 2,
  strokeColor: '#686868',
  });

 map.data.toGeoJson(function(data) {
   var jsonData = JSON.Stringify(data);
  });

 $.ajax({
    method: 'POST',
url: 'http://www.h..........com/savegeojson.php',
data: {'data' : jsonData},
success: function(response){
             alert( response );
    },
    error: function (response) {
             alert('error'+ response);
             }
});
}

我使用成功將數據發布到服務器上SQL數據庫的相同php要求,因此假設我可以執行相同的操作來訪問同一服務器上的文件。 我的PHP文件如下:

<?php
 require __DIR__ . "/getdb.php";

  if (!mysql_connect($db_host, $db_user, $db_pwd))
   die("Can't connect to database");

 if (!mysql_select_db($database))
     die("Can't select database");

  $json = json_decode($_POST['data'],true);

     if (json_decode($json) != null) { /* sanity check */
 $file = fopen('http://www.h.....com/geojson/164_surveydata.json','w+');
     fwrite($file, $json);
     fclose($file);
    } else {
     // handle error 
    }
  ?>

這個想法是將json文件加載到Google地圖中,編輯折線等,然后將數據保存回相同的json文件中。

任何幫助是極大的贊賞。 另外,關於在哪里放置errorhandlers(?)的任何技巧也很棒。

為簡化起見,只需刪除您的json文件並將其放入數據庫中即可。 使用您的php代碼創建一個json格式的字符串,其中包含每個折線的坐標。 這是折線的可編輯節點的示例。 為節省折線路徑,請參考此SO問題 至於錯誤處理,您可以將其放在從數據庫獲取坐標的位置,以便在地圖上繪制折線,最后將坐標保存在數據庫中。

這是這樣做的原因:

  • 將其保存到json將是多余的,因為將文件覆蓋到服務器時必須考慮許多因素。 簡單地說,將坐標保存到數據庫中。

  • 您將上傳到服務器的文件將減少。

  • 文件依賴性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM