javascript - 如何将谷歌地图中的坐标放入输入字段?

标签 javascript html google-maps google-maps-api-3

我正在尝试将标记坐标放入输入字段,但我不知道该怎么做;( 我的例子在这里: https://skni.org/map.html 我在该变量中获取坐标:

  var infowindow = new google.maps.InfoWindow({
  content: '' + marker.getPosition() + ''

我希望能够在 map 上放置几个标记,然后所有坐标值都应进入输入字段,以便我可以将它们发送到数据库中

我的代码: 脚本.js

  // In the following example, markers appear when the user clicks on the map.
  // The markers are stored in an array.
  // The user can then click an option to hide, show or delete the markers.
  var map;
  var markers = [];

  window.initMap = function(){
    var haightAshbury = {lat: 52.131514, lng: 20.913248};

    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 17,
      center: haightAshbury,
      mapTypeId: 'satellite'
    });

    // This event listener will call addMarker() when the map is clicked.
    map.addListener('click', function(event) {
      addMarker(event.latLng);
    });

    // Adds a marker at the center of the map.
    addMarker(haightAshbury);
  }

  // Adds a marker to the map and push to the array.
  function addMarker(latlng) {
    var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      title: 'Set lat/lon values for this property',
      draggable: true
    });
      var infowindow = new google.maps.InfoWindow({
      content: '' + marker.getPosition() + ''
    });

    google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(map, marker);
    });
    markers.push(marker);
  }

  // Sets the map on all markers in the array.
  function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
    }
  }

  // Removes the markers from the map, but keeps them in the array.
  function clearMarkers() {
    setMapOnAll(null);
  }

  // Shows any markers currently in the array.
  function showMarkers() {
    setMapOnAll(map);
  }

  // Deletes all markers in the array by removing references to them.
  function deleteMarkers() {
    clearMarkers();
    markers = [];
  }

html代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Remove Markers</title>
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #floating-panel {
        position: absolute;
        top: 10px;
        left: 25%;
        z-index: 5;
        background-color: #fff;
        padding: 5px;
        border: 1px solid #999;
        text-align: center;
        font-family: 'Roboto','sans-serif';
        line-height: 30px;
        padding-left: 10px;
      }
    </style>
  </head>
  <body>
    <div id="floating-panel">
        <form action="/action_page.php">
    Coordinates:<br>
    <input type="text" name="coordinates" size="55" value="How to get coordinates from info window after clicking on markers?">
    <br>

    <input type="submit" value="Submit">
    </form> 
    <br />
      <input onclick="clearMarkers();" type=button value="Hide Markers">
      <input onclick="showMarkers();" type=button value="Show All Markers">
      <input onclick="deleteMarkers();" type=button value="Delete Markers">
    </div>
    <div id="map"></div>
    <p>Click on the map to add markers geocoorditanes.</p>




    <div id="map-canvas"> </div>
    <script src="script.js" ></script>
    <script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=MYKEY&callback=initMap"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>




  </body>
</html>

最佳答案

将其附加到您的 addMarker() 函数中:

var allCoordinates = [];
markers.forEach(function(marker){ 
  allCoordinates.push(marker.getPosition().lat() + "," + marker.getPosition().lng());
})
$("input[name=coordinates]").val(allCoordinates);

当然,您应该根据需要更改坐标的格式,这可能可以重构以提高效率。

关于javascript - 如何将谷歌地图中的坐标放入输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45786251/

相关文章:

javascript - flowtype - 如何为导出函数的包声明接口(interface)?

javascript - 如何在node.js中重用oracle连接?

html - CSS 选择器优先级

Android:如何在 map View 上绘制?

javascript - 如何使用地点网址创建谷歌地图标记

google-maps - 在使用 Twitter Bootstrap 创建的模式中显示 Google map

javascript - 如何使应用程序中的日期字段独立于系统时区?

javascript - PHP - 通过单击按钮获取随机数

javascript - 简易饼图 - 为什么没有数字运行动画

html - 使用来自 mysql 数据库的 NodeJs 在 html/js 文件中显示数据