发布到GEOJSON谷歌将数据映射到我的远程服务器上的json文件


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

作为一个编程新手,我已经坚持了几天了。下面的所有代码我都从这个网站和其他网站研究了这个问题,但没有成功。

我可以通过以下方式从服务器上的 json 文件成功将数据加载到 Google 地图上:

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

然后,我可以编辑折线,将节点移动到新位置。

然后,我尝试使用面板按钮单击功能保存编辑后的地图数据图层:

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文件加载到谷歌地图中,编辑折线等,然后将数据保存回同一个json文件。

任何帮助将不胜感激。此外,关于在哪里放置错误处理程序(?)的任何提示也将很棒。

为了简化事情,只需删除您的 json 文件并将其放入数据库中即可。使用 php 代码创建一个 json 格式字符串,其中包含每个折线的坐标。下面是折线的可编辑节点的示例。要保存折线路径,请参阅此SO问题。至于错误处理,您可以在从数据库中获取坐标时将其放在一起,用于在地图上绘制折线,最后将坐标保存在数据库中。

这样做的原因如下:

  • 将其保存到 JSON 将是多余的,因为在将文件覆盖到服务器时必须考虑许多因素。简单地说,将坐标保存到数据库中。

  • 您将上传到服务器的文件将减少。

  • 文件依赖关系。