方法一:html5原生提供的定位:

讲解:在支持HTML5的浏览器下,navigator对象下有一个属性----geolocation,而geolocation属性又有个方法getCurrentPosition(回调函数1,回调函数2)可以通过浏览器向设备发起定位请求,浏览器就会让设备发送相关指令到附近上网设备,上网设备返回定位信息给用户设备,浏览器就获得了用户位置。

当浏览器获得定位信息成功,则navigator.geolocation.getCurrentPosition(回调函数1,回调函数2); 中的回调函数1执行,如果定位失败,则回调函数2执行。

若定位成功,则自动把定位结果对象作为参数传递给回调函数1,。 若定位失败,则自动把错误对象传递给回调函数2.  所以在回调函数2中可通过error.code 获取到错误码。(假设形参名为error)。

如下代码就是用HTML5获取定位信息,并把成功定位交给showPosition处理,把错误定位交给showError处理。

eg:

if(navigator.geolocation){

navigator.geolocation.getCurrentPosition(showPosition,showError);

}else{

alert(Geolocation is not supported by this browser);

} //浏览器不支持HTML5.

详细代码:

*{

height: 100%; //设置高度,不然会显示不出来

}

$(function(){

navigator.geolocation.getCurrentPosition(translatePoint); //定位

});

function translatePoint(position){

var currentLat = position.coords.latitude;

var currentLon = position.coords.longitude;

var gpsPoint = new BMap.Point(currentLon, currentLat);

BMap.Convertor.translate(gpsPoint, 0, initMap); //转换坐标:gpsPoint:转换前坐标,第二个参数为转换方法,0表示gps坐标转换成百度坐标,callback回调函数,参数为新坐标点

}

function initMap(point){

//初始化地图

map = new BMap.Map("map");

map.addControl(new BMap.NavigationControl());

map.addControl(new BMap.ScaleControl());

map.addControl(new BMap.OverviewMapControl());

map.centerAndZoom(point, 15);

map.addOverlay(new BMap.Marker(point))

}

注释:

这是因为htm5 的 getCurrentPosition 获取到的坐标是 GPS 经纬度坐标,而百度地图的坐标是经过特殊转换的,所以,在获取定位坐标和初始化地图之间需要进行一步坐标转换工作,该转换方法百度API里面已经提供了,转换一个点或者批量装换的方法均有提供:单个点转换需引用 http://developer.baidu.com/map/jsdemo/demo/convertor.js,批量转换需引用 http://developer.baidu.com/map/jsdemo/demo/changeMore.js,这里只需要前者即可:

方法二:百度地图提供的API

(1)通过浏览器定位:

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}

浏览器定位

// 百度地图API功能

var map = new BMap.Map("allmap");

var point = new BMap.Point(116.331398,39.897445);

map.centerAndZoom(point,12);

var geolocation = new BMap.Geolocation();

geolocation.getCurrentPosition(function(r){

if(this.getStatus() == BMAP_STATUS_SUCCESS){

var mk = new BMap.Marker(r.point);

map.addOverlay(mk);

map.panTo(r.point);

alert('您的位置:'+r.point.lng+','+r.point.lat);

}

else {

alert('failed'+this.getStatus());

}

},{enableHighAccuracy: true})

//关于状态码

//BMAP_STATUS_SUCCESS检索成功。对应数值“0”。

//BMAP_STATUS_CITY_LIST城市列表。对应数值“1”。

//BMAP_STATUS_UNKNOWN_LOCATION位置结果未知。对应数值“2”。

//BMAP_STATUS_UNKNOWN_ROUTE导航结果未知。对应数值“3”。

//BMAP_STATUS_INVALID_KEY非法密钥。对应数值“4”。

//BMAP_STATUS_INVALID_REQUEST非法请求。对应数值“5”。

//BMAP_STATUS_PERMISSION_DENIED没有权限。对应数值“6”。(自 1.1 新增)

//BMAP_STATUS_SERVICE_UNAVAILABLE服务不可用。对应数值“7”。(自 1.1 新增)

//BMAP_STATUS_TIMEOUT超时。对应数值“8”。(自 1.1 新增)

(2)通过ip定位:

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}

IP定位获取当前城市

// 百度地图API功能

var map = new BMap.Map("allmap");

var point = new BMap.Point(116.331398,39.897445);

map.centerAndZoom(point,12);

function myFun(result){

var cityName = result.name;

map.setCenter(cityName);

alert("当前定位城市:"+cityName);

}

var myCity = new BMap.LocalCity();

myCity.get(myFun);

百度地图Api:

//让所有点在视野范围内 pointArray:点集合

map.setViewport(pointArray);

//清除所有点集合

map.clearOverlays();

注释:

百度地图开放平台:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

百度地图生成器:http://api.map.baidu.com/lbsapi/creatmap/index.html

http://developer.baidu.com/map/jsdemo.htm#i8_2

申请百度地图API密匙步骤:http://jingyan.baidu.com/article/363872eccda8286e4aa16f4e.html

百度地图  地名 转换成经纬度 参考文章:http://www.jb51.net/article/58396.htm

方法三:高德地图定位:

地址:http://lbs.amap.com/api/javascript-api/example/map/map-show/

大家自己去查看

参考:http://blog.csdn.net/suixufeng/article/details/13511761

http://www.jb51.net/html5/208408.html

http://blog.csdn.net/xmtblog/article/details/45093661

php获取用户当前坐标,web端定位:获取当前地理位置相关推荐

  1. Android开发——后台获取用户点击位置坐标(可获取用户支付宝密码)

    1. getevent命令 我们首先是根据adb shell getevent命令获取到被点击位置的信息. 这里要说明的是,不同的手机手机获得的点击输出是不一样的.以我的真机为例,输出如下 本文原创, ...

  2. java微信获取用户列表_微信公众平台 获取用户列表

    一.接口说明 公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的Open ...

  3. php获取当前的地理位置,web端定位:获取当前地理位置

    方法一:html5原生提供的定位: 讲解:在支持HTML5的浏览器下,navigator对象下有一个属性----geolocation,而geolocation属性又有个方法getCurrentPos ...

  4. 微信扫描PC端二维码跳转到小程序确认登录通过WebSocket来获取用户信息达到PC端登录

    需求: 在pc端获取后端给的token值来生产二维码(这里后端给了我两个url:一个是二维码url,一个是ws的 url),用微信扫描二维码跳转到小程序写的确定登录页面(进行确定):然后在PC端使用W ...

  5. 微信小程序 uniapp 点击获取用户实时当前位置进行定位

    步骤一:该函数(authorization)是用来触发获取为信用户当前位置(getWxLocation)和用户位置授权(toSetting)的: async authorization() {let ...

  6. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  7. 微信授权获取用户的openid和支付宝授权获取用户的userid

    为什么80%的码农都做不了架构师?>>>    当一请求一个链接或者是扫描二维码时,会请求后台方法,当然对于微信和支付宝来说,大多数时候是扫 码 一.首先说微信: 1.首先会判断请求 ...

  8. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号详解

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  9. 【微信公众号开发】获取用户信息时,有时成功获取,有时提示“invalid openid hint”

    原因:保存openid的session在某个方法里被重新赋新值了.所以一旦调用了这个方法,再去获取用户信息时,就会报错.

最新文章

  1. 1003 我要通过!
  2. java Serializable 详解
  3. 我所碰到的面试题之------前端常见浏览器兼容性问题解决方案---
  4. php下webservice使用总结
  5. Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)
  6. Linux下GCC的安装,GCC链接外部库
  7. 每天一个Linux命令之date
  8. 在双11大促中的数据库服务器
  9. java二叉树的实现_二叉树的实现(Java语言描述)
  10. java泛型程序设计——调用遗留代码
  11. 第八章 数据结构与算法
  12. linux面试题:删除一个目录下的所有文件,但保留一个指定文件
  13. 【java】打印一个序列,第一项和第二项都是1,以后的每一项都是前面两项的和。
  14. 使用Python调用Netconf进行配置
  15. Params属性的用法 (beginner)
  16. 转python 发送邮件实例
  17. 如何制作专属的VS Code主题
  18. mysql计算连续天数,mysql连续登录天数,连续天数统计
  19. RocketMQ消息发送源码解析
  20. Mac系统空格预览放大图片

热门文章

  1. js制作带有遮罩弹出层实现登录小窗口
  2. IIS 7.5配置PHP更容易!
  3. Bailian3246 展览会【计数+求和】
  4. HDU2109 Fighting for HDU【排序】
  5. POJ3262 Protecting the Flowers【贪心】
  6. CCF201503-5 最小花费(30分)
  7. MySQL 基本信息的查询(初始化配置信息 my.ini)
  8. 命名之法 —— 时间、季节、地点
  9. 强化学习 —— 资源清单
  10. 「兵以诈立」—— 孙子的兵法