1

我有来自 Google API 文档的代码。它正是我想要的,除了我需要能够在放置标记后获得标记的纬度和经度。

在我的网站中,我启用了能够在地图上选择位置的选项,但我需要以某种方式从客户设置的标记中获取纬度和经度信息,特别是在隐藏字段中,以便我可以存储它们数据发布时$_POST

我现在的代码是:

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=jsdlkajslkdjaslkdja&sensor=false&language=ar&region=SAU">
    </script>
    <script type="text/javascript">
var map;
var markersArray = [];

function initialize() {
  var haightAshbury = new google.maps.LatLng(26.1631, 50.2044188);
  var mapOptions = {
    zoom: 7,
    center: haightAshbury,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  };
  map =  new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

  google.maps.event.addListener(map, 'click', function(event) {
    addMarker(event.latLng);
  });
}

function addMarker(location) {
  marker = new google.maps.Marker({
    position: location,
    map: map
  });
  markersArray.push(marker);
}

// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
  }
}

// Shows any overlays currently in the array
function showOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(map);
    }
  }
}

// Deletes all markers in the array by removing references to them
function deleteOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
    markersArray.length = 0;
  }
}
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width:100%; height:100%"></div>
  </body>
</html>

我主要需要 JS 方面的帮助。

4

1 回答 1

1

有一个标记数组变量,其中包含所有标记。

遍历数组,您将使用 item.getPosition().lat()and获得每个项目的 lat/lngitem.getPosition().lng()


<edit>

限制为 1 个标记很容易。更改此行:

google.maps.event.addListener(map, 'click', function(event) {

进入这个:

google.maps.event.addListenerOnce(map, 'click', function(event) {

</edit>

于 2012-09-05T19:41:48.850 回答