手机端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为开发人员们提供了例如以下类型的地图覆盖物: ...
随机推荐
- [LOJ2538] [PKUWC2018] Slay the Spire
题目链接 LOJ:https://loj.ac/problem/2538 Solution 计数好题. 首先可以发现这题和期望没关系. 其次对于手上的一套牌,设我们有\(a\)张强化牌,那么: 如果\ ...
- 【以前的空间】bzoj1009 [HNOI2008]GT考试
动态规划+kmp+矩阵快速幂 关于这题可以写出一个dp方程(f[i,j]表示准考证前i位中后j位为不吉利的数字的前j位的情况的个数) f[i,j]=Σf[i-1,k],其中j表示不吉利数字前k个数字加 ...
- 2018牛客多校第五场 H.subseq
题意: 给出a数组的排列.求出字典序第k小的b数组的排列,满足1<=bi<=n,bi<bi+1,a[b[i]]<a[b[i+1]],m>0. 题解: 用树状数组倒着求出以 ...
- c#中文件流的读写
文件流读入:第一static void Main(string[] args) { //C#文件流写文件,默认追加FileMode.Append string msg = "okffffff ...
- 【Android开发】范例1-绘制Android的机器人
下面这个实例通过前面学过的Paint.Canvas等2D绘画技术来实现在手机屏幕上绘制Android机器人的小实例. 具体代码实现和效果: 用来显示自定义的绘图类的布局文件 res/layout/ma ...
- DOM基本代码二
------------------------------- <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...
- jsp链接sql数据库
Connection 参数//这个参数用来执行链接数据库的操作 String 参数2="com.microsoft.sqlserver.jdbc.SQLServerDriver"; ...
- DBA操作常用命令
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 orac ...
- PHP系统编程--03.PHP进程信号处理
PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要. 函数原型 bool pcntl_signal(int $signo ,c ...
- 转【jenkins插件】
开源版本的Jenkins 具有三大能力:Master-Slave的分布式构建调度能力.Pipeline编排能力.强大的开源生态(插件)能力. 2017年4月,Jenkins创始人KK(Kohsuke ...