将多边形坐标(Google Map API v3)发布到php

时间:2015-06-07 19:22:57

标签: javascript php google-maps google-maps-api-3

我指的是Polygon“Drawing and Getting Coordinates with Google Map API v3”的问题和jhawes的代码,它的工作正常;但我很难使用php将lat / lng值发布到DB。 在其他具有单一坐标的脚本中,我使用以下内容(而变量“BlattNr,Quadrant,MTBlat,MTBlng,Qmlat,Qmlng”对该问题不感兴趣):

function saveData(BlattNr, Quadrant, MTBlat, MTBlng, Qmlat, Qmlng) {

var latlng = marker.getPosition();

  window.location.href = "schritt_2.php?lat=" + latlng.lat() + 
      "&lng=" + latlng.lng() + "&MTBNr=" + BlattNr + "&Quadrant=" + Quadrant + "&MTBlat=" + MTBlat + "&MTBlng=" + MTBlng + "&Qmlat=" + Qmlat + "&Qmlng=" + Qmlng;
  marker.setMap(null);
  }

有了这个我可以发布单点坐标的lat和lng - 但是如何传递各个点的多个lat和lng?我不知道如何定义变量以及如何构造“saveData”函数... 非常感谢您的任何帮助: - )

1 个答案:

答案 0 :(得分:0)

好的,我复制/粘贴了jhawes在jsFiddle中放入的代码

我添加了一些东西 添加jQuery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Save_data

function save_data() {
  var data = [];
  var len = myPolygon.getPath().getLength();
  for (var i = 0; i < len; i++) {
    data.push([myPolygon.getPath().getAt(i).lat(), myPolygon.getPath().getAt(i).lng()]);
  }
  // send data to the server
  $.ajax({
    url: 'save.php?p=' + JSON.stringify(data), 
    success: function (message) {
      $('#ajaxresponse').html(message);
    }
  });
}

按钮和显示div。把它们放在标记的底部。

<input type="button" onclick="save_data()" value="SAVE">
<div id="ajaxresponse"></div>

服务器端:我在这里做的不多;我相信你能处理它。

save.php

<?php
if (isset($_GET['p'])) {
  $locations = json_decode($_GET['p'], true);
  echo print_r($locations, true) . '<br>';
  echo "let's print the second point: lat=" . $locations[1][0] . ", lng=" . $locations[1][0];
}
?>