0

标题说明了问题。现在,使用从零开始的计数器是否很好,当它是 1 或更多时,我不会添加标记。或者我应该尝试使当有人点击地图时旧标记消失并分配新标记?以下代码是我到目前为止所拥有的。感谢您的任何帮助。

另外,如何在下一页中访问经度和纬度?

关于将地图捕获到一个 blob 中,它是一个不同的主题还是相关的?

谢谢

<!DOCTYPE html>
<html>
  <head>
    <title>Accessing arguments in UI events</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet">
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
function initialize() {
  var mapOptions = {
    zoom: 4,
    center: new google.maps.LatLng(-25.363882,131.044922),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

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

function placeMarker(position, map) {
  var marker = new google.maps.Marker({
    position: position,
    map: map
  });
  map.panTo(position);
}

google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body onload="initialize();">
    <div id="map-canvas"></div>
  </body>
</html>
4

1 回答 1

1

我会说这取决于您和您的应用程序稍后如何处理标记。

您可以实现一个计数器,创建一个可拖动的标记,这取决于应用程序稍后将如何工作。

你的下一页会是什么样子?


一种简单的方法可能是这样的:

我使用 addListenerOnce 只调用一次 placeMarker 函数,在此期间我在表单字段中写入纬度和经度。

现在您可以添加操作参数和提交按钮,并且您可以访问下一页上的值。

这就是小提琴+代码:http: //jsfiddle.net/iambnz/LcKy2/

function initialize() {
  var mapOptions = {
    zoom: 4,
    center: new google.maps.LatLng(-25.363882,131.044922),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

  google.maps.event.addListenerOnce(map, 'click', function(e) {
    placeMarker(e.latLng, map);
   // alert(e.latLng.toString());
    document.getElementById("latitude").value = e.latLng.lat();
    document.getElementById("longitude").value = e.latLng.lng(); 
  });
}

function placeMarker(position, map) {
  var marker = new google.maps.Marker({
    position: position,
    map: map
  });
  map.panTo(position);
}

google.maps.event.addDomListener(window, 'load', initialize);
于 2013-07-20T19:19:29.587 回答