用户在地图上设置他们的真实位置

时间:2012-06-15 17:48:55

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

我想知道是否有人这样做过,或者能指出我使用谷歌地图API,最好是PHP和JS来做正确的方向。

我希望能够获取用户的地址和邮政编码,然后显示显示其位置的地图。

由于英国邮政编码的性质,“实际”位置可能会远离显示的内容。 (例如在威尔士 - 高尔夫俱乐部的邮政编码可以覆盖约2平方英里,与小路和小巷交叉)。

然后我希望用户能够拖动指针 - 或其他一些方法 - 并指向它们在地图上的真实位置 - 并将此点(lat / long)传递回我的代码。

2 个答案:

答案 0 :(得分:1)

基本概念:

  1. 将您拥有的数据地理编码为LatLng值:https://developers.google.com/maps/documentation/javascript/reference#Geocoder
  2. 使用步骤1中的LatLng,在地图上放置一个可拖动的标记:https://developers.google.com/maps/documentation/javascript/reference#Marker
  3. 收听标记上的dragend事件以获取新的LatLng。
  4. 适用样品:

答案 1 :(得分:0)

以下是用户点击Google地图时获取lat和lng的代码:

  //capture lat and lng when user clicks on map
  google.maps.event.addListener(map, "click", function(event) {
     var lat = event.latLng.lat();
     var lng = event.latLng.lng();
     $("#lat").val(lat);
     $("#lng").val(lng);
     //console.log("Lat: "+ event.latLng.lat() +"Lng: "+ event.latLng.lng());    
  }); 

这是我用来将数据提交到服务器以添加到数据库中的JQuery(有一个用户可以创建更多变量的表单):

    //when user clicks submit button on form, use ajax/json to send info to db
    $("#submit").click(function() {
        var lat = $("#lat").val();
        var lng = $("#lng").val();
        var type = $("#type").val();
        var des = $("#des").val();
        $.ajax({
              type: "POST",
              url: "DB_addProblem.php",
              data: "lat="+ lat + "&lng="+ lng + "&type="+ type + "&des="+ des
        }).done(function( msg ) {
              alert( "Data Submited: " + msg + "!!!");
        });
     });