javascript-TOGEOJSONへの投稿Googleはデータをリモートサーバー上のjsonファイルにマップします
プログラミングの初心者である私は、これに数日間悩まされてきました。以下のすべてのコードは、このサイトや他のサイトから調査して、問題を解決しましたが、成功しませんでした。
次のコマンドを使用して、サーバー上のjsonファイルからGoogleマップにデータを正常に読み込むことができます。
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ファイルに保存することです。
どんな助けでも大歓迎です。また、エラーハンドラー(?)を配置するためのヒントも素晴らしいでしょう。
答え :
解決策:
簡単にするために、jsonファイルを削除してデータベースに配置するだけです。 phpコードを使用して、各ポリラインの座標を保持するjson形式の文字列を作成します。 ポリラインの編集可能なノードのサンプルを次に示します。 ポリラインパスを保存するには、このSOの質問を参照してください。 エラー処理に関しては、データベースから座標を取得するときにこれを配置できます。マップにポリラインをプロットし、最後に座標をDBに保存します。
これを行う理由は次のとおりです:
-
ファイルをサーバーに上書きするときに多くの要因を考慮する必要があるため、jsonに保存することは冗長になります。簡単に言うと、座標をデータベースに保存します。
サーバーにアップロードするファイルは少なくなります。
ファイルの依存関係。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。