【问题标题】:get latitude longitude from marker and store to SQL database [closed]从标记获取纬度经度并存储到SQL数据库[关闭]
【发布时间】:2014-03-13 18:56:32
【问题描述】:

我正在制作我的最后一个项目 我的项目类似于 Salman 的 Latitude Longitude Finder Tool,但不是显示坐标,而是使用简单查询将坐标存储在 SQL 数据库中。 因为我缺乏编码技能,我无法做到这一点,所以有人可以帮助我吗?

接下来我该怎么做? 我必须做什么变量?

这是直接来自 Salman 源代码的代码

<form id="mapform" action="#">
<input id="mapinput" type="text" style="width: 80%;" value="Institut Teknologi Telkom, Sukapura, Dayeuhkolot, Bandung 40257, Indonesia" maxlength="100">
<input type="submit" style="width: 10%;" value="Find">
</form> 
<div id="mapdiv" style="height: 400px; width:90%"></div>
<div id="mapoutput" style="width:90%;background-color: #FFDD22; font-weight:      bold;">Latitude:<br>Longitude:</div>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?       v=3&amp;sensor=true&amp;key=AIzaSyAUQHXuw8OR1CzCPpo7bLMt_H_nauUHXKw"></script>
<script type="text/javascript">
google.maps.event.addDomListener(window, "load", function() {
//
// initialize map
//
var map = new google.maps.Map(document.getElementById("mapdiv"), {
  center: new google.maps.LatLng( -6.976801, 107.630835),
  zoom: 16,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});
//
// initialize marker
//
var marker = new google.maps.Marker({
  position: map.getCenter(),
  draggable: true,
  map: map
});
//
// intercept map and marker movements
//
google.maps.event.addListener(map, "idle", function() {
  marker.setPosition(map.getCenter());
  document.getElementById("mapoutput").innerHTML = "<a   href=\"https://maps.google.com/maps?q=" + encodeURIComponent(map.getCenter().toUrlValue()) + "\" target=\"_blank\" style=\"float: right;\">Go to maps.google.com</a>Latitude: " + map.getCenter().lat().toFixed(6) + "<br>Longitude: " + map.getCenter().lng().toFixed(6);
});
google.maps.event.addListener(marker, "dragend", function(mapEvent) {
  map.panTo(mapEvent.latLng);
});

//
// initialize geocoder
//
var geocoder = new google.maps.Geocoder();
google.maps.event.addDomListener(document.getElementById("mapform"), "submit",      function(domEvent) {
  if (domEvent.preventDefault){
    domEvent.preventDefault();
  } else {
    domEvent.returnValue = false;
  }
  geocoder.geocode({
    address: document.getElementById("mapinput").value
  }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      var result = results[0];
      document.getElementById("mapinput").value = result.formatted_address;
      if (result.geometry.viewport) {
        map.fitBounds(result.geometry.viewport);
      }
      else {
        map.setCenter(result.geometry.location);
      }
    } else if (status == google.maps.GeocoderStatus.ZERO_RESULTS) {
      alert("Sorry, the geocoder failed to locate the specified address.");
    } else {
      alert("Sorry, the geocoder failed with an internal error.");
    }
  });
  });
  });
</script>

【问题讨论】:

  • 你有什么问题?发出 ajax 请求以存储坐标所需的 Javascript;然后将坐标保存在数据库中所需的 PHP 或 SQL?
  • 我不知道如何在 gmaps 脚本变量旁边使用 sql 查询,所以我没有在上面的代码上写任何东西,只是 maps 脚本

标签: php sql google-maps google-maps-api-3


【解决方案1】:

只需将标记的dragend事件编辑为

google.maps.event.addListener(marker, 'dragend', function (event) {
    var lat = this.getPosition().lat();
    var lng = this.getPosition().lng();
    //use an AJAX function to save the lat/lng to the data base
    $.ajax({
        type:'POST',
        data:{latitude:lat, longitude:lng},
        url:"savecoords.php",
        success:function(response){
            if(reponse=="success"){
                alert('Location marked');
            }
            else{
                alert('Cant mark location');
            }
        },
        error:function(){
            alert('An error occured');
        }
    });
});

在AJAX函数中latlng通过POST方法中的变量latitudelongitude传递给文件savecoords.php。在该文件中,您可以访问 $_POST['latitude']$_POST['longitude'] 的值。然后你需要创建savecoords.php文件,内容必须是这样的:

savecoords.php

<?php
    $latitude   =   $_POST['latitude'];
    $longitude  =   $_POST['longitude'];

    //establish mysqli connection

    $query      =   'Your save query with $latitude and $longitude';    
    if(mysqli_query($query)){
        echo "success";
    }
    else{
        echo "failed";
    }   
?>

【讨论】:

  • 那么这个AJAX函数是什么?
  • 你得到警报中的纬度/经度了吗
  • 是的,我明白了,接下来我该怎么做?
  • 您可以随意使用该值,例如 save ..
  • 好的,我会尝试保存到数据库中
猜你喜欢
  • 2010-11-25
  • 2011-07-14
  • 1970-01-01
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多