从表格中获取坐标并在地图上显示

Posted

技术标签:

【中文标题】从表格中获取坐标并在地图上显示【英文标题】:Obtaining Coordinates from form and display on map 【发布时间】:2014-02-23 14:59:25 【问题描述】:

我正在尝试在表单中输入两个坐标,当用户单击提交时,我希望它运行“getSavedLocation()”方法。我还希望方法中的“latlon”变量从表单中获取两个坐标,而不是“position.coords.latitude”,有人可以告诉我如何解决这两个问题。这是我的代码。

<form action="getSavedLocation()" method="get">
  Latitude: <input type="text" name="saved_lat"><br>
  Longitude: <input type="text" name="saved_lon"><br>
  <input type="submit" value="Submit">
</form>

<p>Click on the submit button to view the position on a map".</p>


<div id="mapholder"></div>
<script>
var x=document.getElementById("demo");
function getSavedLocation()
  
  if (navigator.geolocation)
    
    navigator.geolocation.getCurrentPosition(showPosition,showError);
    
  elsex.innerhtml="Geolocation is not supported by this browser.";
  

function showPosition(position)
  
  var latlon=position.coords.latitude+","+position.coords.longitude;

  var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
  +latlon+"&zoom=14&size=400x300&sensor=false";
  document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";
  
  </script>
  </body>

【问题讨论】:

【参考方案1】:

您可以使用运行 onclick 来获取结果,而不是重新加载页面。

Latitude: <input type="text" id="saved_lat"><br>
Longitude: <input type="text" id="saved_lon"><br>
<button type="submit" value="Submit" onclick="showPosition();">

<p>Click on the submit button to view the position on a map".</p>


<div id="mapholder"></div>
<script>

function showPosition()

    //var latlon=position.coords.latitude+","+position.coords.longitude;
    var lat = document.getElementById("saved_lat").value;
    var lon = document.getElementById("saved_lon").value;

    var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
     + lat + "," + lon +"&zoom=14&size=400x300&sensor=false";
    document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";

 

 </script>
 </body>

【讨论】:

这样做会创建一个表单,当我点击它并且我无法点击任何其他搜索结果时,它只会显示第一条记录的地图。有什么建议么?谢谢 我的错误。应使用 id 而不是 html 输入的名称。它现在应该可以多次点击了。 这里没有使用表单标签有什么原因吗?由于某种原因,我所有的搜索结果都显示在按钮上:/ 我正在使用带有 onclick 操作的 javascript 在客户端浏览器上执行更改。除非你需要做表单提交来重新加载页面,在这种情况下这是不必要的。 有没有在这个坐标上添加一个标记?并显示用户当前位置?谢谢 。抱歉所有这些问题

以上是关于从表格中获取坐标并在地图上显示的主要内容,如果未能解决你的问题,请参考以下文章

从文本文件中获取数据并在 html 表格中显示

如何从转义闭包中获取值并将其分配给变量并在表格视图中显示

从 Django POST 请求中获取表格并在 handsontable 中显示(在 javascript 中读取值)

高德地图的Marker和MarkerCluster的应用场景分析

从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它

每 10 秒更新一次用户位置 - 从 mysql 获取位置