Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发布toGEOJSON Google将数据映射到我的远程服务器上的json文件_Javascript_Php_Json_Google Maps - Fatal编程技术网

Javascript 发布toGEOJSON Google将数据映射到我的远程服务器上的json文件

Javascript 发布toGEOJSON Google将数据映射到我的远程服务器上的json文件,javascript,php,json,google-maps,Javascript,Php,Json,Google Maps,作为一名编程新手,我已经在这方面停留了几天。下面的所有代码我都从这个网站和其他网站上研究过,以解决这个问题,但都没有成功 我可以通过以下方式将数据从服务器上的json文件成功加载到Google Maps上: map.data.loadGeoJson('http://www.h...........com/geojson/164_surveydata.json'); map.data.setStyle({ editable: false, draggable: false,

作为一名编程新手,我已经在这方面停留了几天。下面的所有代码我都从这个网站和其他网站上研究过,以解决这个问题,但都没有成功

我可以通过以下方式将数据从服务器上的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文件加载到GoogleMaps中,编辑多段线等,然后将数据保存回同一个json文件


非常感谢您的帮助。此外,关于在何处放置ErrorHandler(?)的任何提示也将非常棒。

要简化操作,只需删除json文件并将其放入数据库即可。使用php代码创建一个json格式的字符串,该字符串保存每个多段线的坐标 以下是的可编辑节点的示例。 有关保存多段线路径的信息,请参考此。 至于错误处理,您可以在从数据库中获取坐标、在地图中绘制多段线以及最后在数据库中保存坐标时使用此选项

这样做的原因如下:

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

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

  • 文件依赖关系


要简化操作,只需删除json文件并将其放入数据库即可。使用php代码创建一个json格式的字符串,该字符串保存每个多段线的坐标 以下是的可编辑节点的示例。 有关保存多段线路径的信息,请参考此。 至于错误处理,您可以在从数据库中获取坐标、在地图中绘制多段线以及最后在数据库中保存坐标时使用此选项

这样做的原因如下:

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

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

  • 文件依赖关系


谢谢KENdy,您的建议促使我们重新思考如何解决问题并提高性能。现在,我单独处理每条多段线,并使用XMLHttp将其保存到数据库中,并对每条多段线的坐标进行编码。因此,我现在不转换为Json格式,而只是数据库中用于编码多段线的文本列。谢谢KENdy,您的建议促使我们重新思考如何解决问题并提高性能。现在,我单独处理每条多段线,并使用XMLHttp将其保存到数据库中,并对每条多段线的坐标进行编码。因此,我现在不是转换为Json格式,只是数据库中用于编码多段线的文本列。