从 GPS 获取当前标记位置并保存到 mySQL

Posted

技术标签:

【中文标题】从 GPS 获取当前标记位置并保存到 mySQL【英文标题】:Get current marker location form GPS and save to mySQL 【发布时间】:2017-02-06 07:27:35 【问题描述】:

我有以下 JS 代码,形成此代码我需要将默认位置设置为我当前的 GPS 位置,

var map = new google.maps.Map(document.getElementById('map_canvas'), 
    zoom: 1,
    center: new google.maps.LatLng(35.137879, -82.836914),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
        zoom: 20
);

var myMarker = new google.maps.Marker(
    position: new google.maps.LatLng(47.651968, 9.478485),
    draggable: true
);


google.maps.event.addListener(myMarker, 'dragend', function (evt) 
    document.getElementById('current').innerhtml = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
);

google.maps.event.addListener(myMarker, 'dragstart', function (evt) 
    document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
);

map.setCenter(myMarker.position);
myMarker.setMap(map);

设置我的标记后(如果我需要更改位置),那么我需要一个按钮来提交,提交按钮后它将保存到我的 mysql 数据库中。 有人可以帮忙吗?

【问题讨论】:

你后端的代码是什么? @Jerry Chin,当我的 JS 代码或页面加载时,它会显示我的默认位置,目前它不显示我当前的位置,它显示的是预定义的位置 【参考方案1】:

您可以使用 ajax 调用将数据发布到服务器,然后服务器端提供在数据库中存储 di 值

假设您有一个用于存储名为 your_action_on_server.php 的数据的服务器程序,您可以扩展拖动结束事件 这只是发送部分(您必须提供与您的数据库连接相关的服务器端存储功能)

google.maps.event.addListener(myMarker, 'dragend', function (evt) 
    document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
    $.post( 'your_action_on_server.php',  
                   lat:evt.latLng.lat().toFixed(3),
                  lng: evt.latLng.lng().toFixed(3)                  
                ,
                      function (data)  
                      // you code for succcess from server
          );
  );

要获取当前位置,您可以使用地理位置对象 api 更多信息请参见https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

  if ("geolocation" in navigator) 
    /* geolocation is available */
   else 
    /* geolocation IS NOT available */
  

.....

  navigator.geolocation.getCurrentPosition(function(position) 
    do_something(position.coords.latitude, position.coords.longitude);
  );

【讨论】:

默认情况下它不显示当前位置,请你帮我,当页面加载时它会加载当前位置然后我可以更改标记,之后我可以按一个按钮添加然后它会保存该位置。 要获取当前位置,您可以使用 javascript gelocaltion api .. 我已经用一个简短的建议更新了答案

以上是关于从 GPS 获取当前标记位置并保存到 mySQL的主要内容,如果未能解决你的问题,请参考以下文章

从应用程序提示启用 gps 后如何刷新并获取当前位置?

Android GPS使用php在Mysql中保存当前位置

传单地图双标问题

使用gps从纬度和经度获取当前位置

在 Android 中使用 GPS 获取当前位置

Javascript:使用 onx api 获取当前 GPS 位置?