手机端GPS定位结合百度地图实现定位
html页面:
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/>
<
meta
name
=
"viewport"
content
=
"initial-scale=1.0, user-scalable=no"
/>
<
style
type
=
"text/css"
>
body, html, #allmap {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
font-family: "微软雅黑";
}
</
style
>
<
title
></
title
>
</
head
>
<
body
>
<
p
id
=
"allmap"
></
p
>
</
body
>
</
html
>
<script type=
"text/javascript"
>
var
x =
""
;
var
y =
""
;
var
dizhi =
""
;
function
getLocation(){
if
(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
else
{
alert(
"浏览器不支持地理定位。"
);
}
}
function
showPosition(position){
y = position.coords.latitude;
//纬度
x = position.coords.longitude;
//经度
// 百度地图API功能
//GPS坐标
var
x = 116.32715863448607;
var
y = 39.990912172420714;
var
ggPoint =
new
BMap.Point(x, y);
//地图初始化
var
bm =
new
BMap.Map(
"allmap"
);
bm.centerAndZoom(ggPoint, 15);
bm.addControl(
new
BMap.NavigationControl());
bm.enableScrollWheelZoom();
//启用滚轮放大缩小,默认禁用
bm.enableContinuousZoom();
//启用地图惯性拖拽,默认禁用
bm.addEventListener(
"tilesloaded"
,
function
() { });
//地图加载完成
var
gc =
new
BMap.Geocoder();
bm.addEventListener(
"click"
,
function
(e) {
ggPoint =
new
BMap.Point(e.point.lng, e.point.lat);
gc.getLocation(ggPoint,
function
(rs) {
var
addComp = rs.addressComponents;
var
mapAddress = addComp.province + addComp.city + addComp.district
+ addComp.street + addComp.streetNumber;
dizhi = mapAddress;
if
(confirm(dizhi)) {
window.location.href =
"succes.html"
}
var
marker =
new
BMap.Marker(ggPoint);
// 创建点
bm.addOverlay(marker);
var
label =
new
BMap.Label(
"您选择的位置为"
+dizhi, { offset:
new
BMap.Size(20, -10) });
marker.setLabel(label);
//添加百度label
bm.setCenter(ggPoint);
});
});
bm.addControl(
new
BMap.NavigationControl());
//坐标转换完之后的回调函数
translateCallback =
function
(data) {
if
(data.status === 0) {
var
marker =
new
BMap.Marker(data.points[0]);
bm.addOverlay(marker);
marker.setAnimation(BMAP_ANIMATION_BOUNCE);
//跳动的动画
//marker.enableDragging();//可拖拽
//var label = new BMap.Label("您所在的位置", { offset: new BMap.Size(20, -10) });
//marker.setLabel(label); //添加百度label
//bm.setCenter(data.points[0]);
//var a=BMap.Convertor(ggPoint, 0);
gc.getLocation(data.points[0],
function
(rs) {
//alert(rs.sematic_description);
var
addComp = rs.addressComponents;
var
mapAddress = addComp.province + addComp.city + addComp.district
+ addComp.street + addComp.streetNumber;
dizhi = mapAddress;
confirm(dizhi);
if
(confirm(dizhi)) {
window.location.href =
"succes.html"
}
var
label =
new
BMap.Label(
"定位您所在的位置为"
+dizhi, { offset:
new
BMap.Size(20, -10) });
marker.setLabel(label);
//添加百度label
bm.setCenter(data.points[0]);
});
}
}
setTimeout(
function
() {
var
convertor =
new
BMap.Convertor();
var
pointArr = []
pointArr.push(ggPoint);
convertor.translate(pointArr, 1, 5, translateCallback)
}, 1000);
}
function
showError(error){
switch
(error.code) {
case
error.PERMISSION_DENIED:
alert(
"定位失败,用户拒绝请求地理定位"
);
break
;
case
error.POSITION_UNAVAILABLE:
alert(
"定位失败,位置信息是不可用"
);
break
;
case
error.TIMEOUT:
alert(
"定位失败,请求获取用户位置超时"
);
break
;
case
error.UNKNOWN_ERROR:
alert(
"定位失败,定位系统失效"
);
break
;
}
}
getLocation();
</script>
手机端GPS定位结合百度地图实现定位的更多相关文章
- 在Fragment中实现百度地图,定位到当前位置(基于SDKv2.1.0)
使用最新版本的百度地图需要注意的几个地方: 1.libs文件夹下要有android-support-v4.jar.baidumapapi_v2_1_0.jar.locSDK_3.1.jar三个jar包 ...
- AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能
在AngularJS应用中集成百度地图实现定位功能 注:请点击此处进行充电! 前言 根据项目需求,需要实现手机定位功能,考虑到百度业务的强大能力,遂决定使用百度地图第三方服务. 添加第三方模块的步骤与 ...
- Xamarin.Android 使用百度地图获取定位信息
最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的 ...
- 利用HTML5定位功能,实现在百度地图上定位(转)
原文:利用HTML5定位功能,实现在百度地图上定位 代码如下: 测试浏览器:ie11定位成功率100%,Safari定位成功率97%,(add by zhj :在手机上测试(用微信内置浏览器打开),无 ...
- GPS坐标转换为百度地图坐标
/** * GPS坐标转换为百度地图坐标 * 需要引入javabase64.jar 和json的一些包 * */ public class Gps2BaiDu { public static void ...
- GPS坐标转百度地图坐标
百度地图提供了相关API:BMap.Convertor.translate, 但是使用上存在部分限制:1.次数限制:2.异步回调 可以用如下方法: /** * 地图位置计算工具(将GPS坐标转换成百度 ...
- ionic基于GPS定位并通过百度地图获取定位详细信息
相信所有的前端攻城狮都会碰到移动端App.里面获取用户定位信息. 那么问题来了,怎么获取用户的定位信息(经纬度)呢. 当然方法有很多,通过百度地图API 以及 高德地图 API都是可以的.但是两个获取 ...
- Android 百度地图SDK 定位
引用locSDK_6.1.3.jar,切记添加相应的so文件. 1.定位初始化,需要使用getApplicationContext() mLocClient = new LocationClient( ...
- Android应用中使用百度地图API定位自己的位置(二)
官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发人员们提供了例如以下类型的地图覆盖物: ...
随机推荐
- POJ.2387 Til the Cows Come Home (SPFA)
POJ.2387 Til the Cows Come Home (SPFA) 题意分析 首先给出T和N,T代表边的数量,N代表图中点的数量 图中边是双向边,并不清楚是否有重边,我按有重边写的. 直接跑 ...
- HDOJ.2955 Robberies (01背包+概率问题)
Robberies 算法学习-–动态规划初探 题意分析 有一个小偷去抢劫银行,给出来银行的个数n,和一个概率p为能够逃跑的临界概率,接下来有n行分别是这个银行所有拥有的钱数mi和抢劫后被抓的概率pi, ...
- 项目压力测试软件 -- LoadRunner 11.0 的安装、汉化和破解
重要说明: LoadRunner 11.0 只支持Win7,32位系统:不支持Win7,64位系统[ Win7,64位 我反复安装都没有成功!] 一.下载安装.汉化.破解文件: 我的下 ...
- HDU 4417 主席树写法
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- [存一下]iptables模块
介绍地址: http://www.tummy.com/blogs/2005/07/17/some-iptables-modules-you-probably-dont-know-about/ [1] ...
- Nginx安装(官网翻译)
转载自:https://www.nginx.com/resources/wiki/start/topics/tutorials/install/ 二进制版本预包装的Linux和BSD大多数Linux发 ...
- Windows常用shell命令大全(转)
[Windows常用shell命令大全] 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而 ...
- [LeetCode] 19. Remove Nth Node From End of List ☆
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- java 反射和new的区别
关于java 反射和new的区别,在这里我不做多讲,因为网上有大把资料,描述得很详细. 今天我只讲一点,为什么要用反射?直接用new不行么?干嘛弄得那么麻烦! 1.基本上效果差不多,但是new对象,无 ...
- 【Foreign】数据结构C [线段树]
数据结构C Time Limit: 20 Sec Memory Limit: 512 MB Description Input Output Sample Input Sample Output H ...