1

私はGoogleAPIドキュメントからこのコードを持っています。マーカーが配置されたら、マーカーの緯度と経度を取得できる必要があることを除いて、それは私が望むことを正確に実行します。

私のサイトでは、地図上の場所を選択できるオプションを有効にしましたが、顧客が設定したマーカーから、特に非表示のフィールドで緯度と経度の情報を取得して保存できるようにする必要がありますデータが投稿されたとき$_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

すべてのマーカーを含むmarkersArray変数があります。

item.getPosition().lat()配列をループすると、とを使用して各アイテムのlat/lngを取得します。 item.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 に答える