前端HTML5
<script type="text/javascript">
var gotrue = true;
$(document).ready(function(){
loaddata();
});
setInterval(function() {
loaddata();
gotrue = true;
},10000);
function loaddata(){
if(navigator.geolocation){
navigator.geolocation.watchPosition(showPosition); //移动地址
//navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position){
if(gotrue){
gotrue = false;
$.getJSON("https://www.lvtao.net/map.php?x="+ position.coords.latitude + "&y=" + position.coords.longitude , function(data){
.... //此处处理返回结果
});
}
}
</script>
MySQL数据库支撑,MyISAM引擎
建表时字段类型为空间类型 POINT等
插入值时需要做处理:
GeomFromText('POINT(30.620076 104.067221)')
查询: 查找附近 10 公里
SELECT *
FROM 表名
WHERE MBRContains
(
LineString
(
Point
(
30.620076 + 10 / ( 111.1 / COS(RADIANS(104.067221))),
104.067221 + 10 / 111.1
),
Point
(
30.620076 - 10 / ( 111.1 / COS(RADIANS(104.067221))),
104.067221 - 10 / 111.1
)
),
字段名
)
mysql5.6+以上版本的空间关系函数:st_distance(),返回两点间的距离值,参考文档:http://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html