将标记坐标设置为变量

时间:2018-04-17 10:53:55

标签: javascript php html google-maps

我正在尝试从我在google maps api上设置的标记中获取LngLat

我自动希望坐标以我的html格式发生。

看起来我没有得到getPosition()权利,因为我使用的其他变量(类似var x = 34)确实有效。

我的代码:

  <form action="send_nieuwcontainer.php" method="post">
    Marker_name: <input type="text" name="markername"><br>
    Coördinaten: <br>
    Lng: <input id="inputlng" type="text" placeholder="<?php $lng; ?>" readonly="readonly">
    Lat: <input id="inputlat" type="text" placeholder="<?php $lat; ?>" readonly="readonly"><br>
  </form>
</div>

<script>
function initMap() {
  var groningen = {lat: 53.218883, lng:  6.566298};
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: groningen
  });

  map.addListener('click', function(e) {
    clearMarkers();
    addMarker(e.latLng, map);
  });

}

var markers = [];

var lng = marker.getPosition().lng();
var lat = marker.getPosition().lat();
document.getElementById('inputlng').value = lng;
document.getElementById('inputlat').value = lat;


// Adds a marker to the map.
function addMarker(latLng, map) {
  var marker = new google.maps.Marker({
    position: latLng,
    map: map
  });
  markers.push(marker);
  if (marker = true) {
    document.getElementById('replaceMe').style.display = 'none';
    document.getElementById('replacement').style.visibility = 'visible';
  } else {
    alert ("Does not work");
  }
}

有人看到我做错了什么或者我忘记了什么吗?

注意:我已经尝试过查看stackoverflow和googlemaps api指南。他们一直告诉我使用getPosition()

1 个答案:

答案 0 :(得分:0)

正如@Turnip所说,marker var在var内声明为addMarker,因此只能在addMarker内访问。

尝试在marker之类的函数外声明var marker;,然后在函数内部,而不是使用var marker = ...,使用marker = ...