繁体   English   中英

如何从Google Map标记获取经度和纬度以进行表单更新?

[英]How to get the latitude and longitude from a Google Map marker in order to update in a form?

我想制作一个自动更新标记坐标的表格。 这是我的脚本部分:

google.maps.event.addListener(map, "click", function(event) {
  marker = new google.maps.Marker({
    position: event.latLng,
    map: map,
  });
  var x = document.getElementById("coordinates");
  if (x.style.display === "none") {
    x.style.display = "block";
  };
  var lati, longi;
  lati = event.latLng;
  longi = event.latLng;
  $("#lat").val(lati);
  $("#lng").val(longi);
});

形式如下:

<div id="coordinates" class="container" style="margin-top: 10px; display: none;">
  <div class="col-sm-5 col-md-5 col-lg-5">
    <input class="form-control" id="lat" name="lat" placeholder="Latitude" type="text" required>
  </div>
  <div class="col-sm-5 col-md-5 col-lg-5">
    <input class="form-control" id="lng" name="lng" placeholder="Longitude" type="text" required>
  </div>

您需要使用.lat()/.lng()将它们分开:

var myLatLng = event.latLng;

var lati = myLatLng.lat();
var lngi = myLatLng.lng();

$("#lat").val(lati);
$("#lng").val(longi);
_^______________________ //Make sure you correct the typo here

您需要使用google.maps.LatLng对象的.lat().lng()方法来获取各个字段:

var lati, longi;
lati = event.latLng.lat();
longi = event.latLng.lng();
$("#lat").val(lati);
$("#lng").val(longi);

概念证明

生成的地图的屏幕截图

代码段:

 function initialize() { var map = new google.maps.Map( document.getElementById("map_canvas"), { center: new google.maps.LatLng(37.4419, -122.1419), zoom: 13, mapTypeId: google.maps.MapTypeId.ROADMAP }); google.maps.event.addListener(map, "click", function(event) { marker = new google.maps.Marker({ position: event.latLng, map: map, }); var x = document.getElementById("coordinates"); if (x.style.display === "none") { x.style.display = "block"; }; var lati, longi; lati = event.latLng.lat(); longi = event.latLng.lng(); $("#lat").val(lati); $("#lng").val(longi); }); } google.maps.event.addDomListener(window, "load", initialize); 
 html, body, #map_canvas { height: 95%; width: 100%; margin: 0px; padding: 0px } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maps.googleapis.com/maps/api/js"></script> <div id="coordinates" class="container" style="margin-top: 10px; display: none;"> <div class="col-sm-5 col-md-5 col-lg-5"> <input class="form-control" id="lat" name="lat" placeholder="Latitude" type="text" required> </div> <div class="col-sm-5 col-md-5 col-lg-5"> <input class="form-control" id="lng" name="lng" placeholder="Longitude" type="text" required> </div> </div> <div id="map_canvas"></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM