h5-25-地理定位配合百度地图
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<title></title>
<style>
* {
margin: 0;
padding: 0;
} html,body {
height: 100%;
} #mapDiv {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<!--显示地区的div-->
<div id="mapDiv">
</div> <script src="http://api.map.baidu.com/api?v=2.0&ak=Q6aiD950lCsEWDWblF8T5BzQjxeUylCj"></script>
<script>
/**
* 地理定位
*/
function getLocation() { //判断浏览器是否支持html5地理定位
if (navigator.geolocation) { //定位方法,参数1:定位成功回调函数,参数2:定位失败回调函数,参数3:具体定位设置
navigator.geolocation.getCurrentPosition(showMap,handlerError,{
enableHighAccuracy:true, //是否高精度定位
maximumAge:1000 //每隔多少毫秒重新获得一次位置
}); } else {
alert('当前浏览器不支持html5的地理定位');
} } /**
* 定位成功的回调函数,参数就是坐标对象
*/
function showMap(loc) { var longitude = loc.coords.longitude;//经度
var latitude = loc.coords.latitude;//纬度 alert('定位成功,当前经纬度:' + longitude + ',' + latitude); //写死的经纬度
// var longitude = 121.51155629576095;
// var latitude = 38.86043635958201; //调用百度地图的API
var map = new BMap.Map('mapDiv'); //创建地图对象
var point = new BMap.Point(longitude,latitude);//坐标点对象 var convertor = new BMap.Convertor(); //转换坐标类的对象
var pointArr = []; //坐标数组
pointArr.push(point); //加入一个坐标对象(可以加入多个坐标对象)
convertor.translate(pointArr,1,5,translateCallback);//转换坐标 //添加地图类型控件,默认在地图右上方
map.addControl(new BMap.MapTypeControl());
//地图平移缩放控件,PC端默认地图左上方,移动端提供缩放控件,默认在地图右下方
map.addControl(new BMap.NavigationControl());
//比例尺控件,默认在地图左下方,显示地图的比例关系
map.addControl(new BMap.ScaleControl());
//缩略地图控件,默认在地图右下方,是一个可折叠的缩略地图
map.addControl(new BMap.OverviewMapControl());
//定位控件,针对于移动端,默认在地图左下方
map.addControl(new BMap.GeolocationControl());
//开启滚轮缩放
map.enableScrollWheelZoom(true); //转换完毕的回调函数,data就是转换后的数据
function translateCallback(data) { if (data.status == 0) { //0为转换成功
var marker = new BMap.Marker(data.points[0]); //创建标记点
map.addOverlay(marker);//在地图上添加标记点
var label = new BMap.Label('纠正之后的GPS坐标',{offset:new BMap.Size(20,-20)}); //创建文字标签
marker.setLabel(label); //添加标记的文字标签
map.centerAndZoom(data.points[0],15) ;//设置坐标中心点和缩放级别
} }
} /**
* 定位失败的回调函数,参数就是错误码对象
*/
function handlerError(err) { if (err.code == 1) {
alert('位置服务被拒绝,请开启');
} else if (err.code == 2) {
alert('无法获得用户位置');
} else if (err.code == 3) {
alert('获取信息超时');
} else if (err.code == 4) {
alert('未知错误无法定位');
}
} //调用定位
getLocation();
</script>
</body>
</html>
h5-25-地理定位配合百度地图的更多相关文章
- HTML5地理定位,百度地图API,知识点熟悉
推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位 if (navigator.geolocation) { alert('支持地理定位'); } e ...
- 跨平台移动开发_PhoneGap 使用Geolocation基于所在地理位置坐标调用百度地图API
使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...
- html5 geolocation配合百度地图api实现定位
1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置.鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用时 ...
- 手机端GPS定位结合百度地图实现定位
html页面: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ ...
- 【Android】3.25 示例25--调启百度地图
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 调启百度地图是指:利用SDK接口,可直接在本地打开百度地图客户端或WebApp实现地图功能. 目前支 ...
- 微信小程序城市定位(借助百度地图API判断城市)
概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...
- 如何利用【百度地图API】进行定位?非GPS定位
原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------- ...
- 百度地图sdk定位和遇到的坑
封装定位服务类: import android.content.Context; import com.baidu.location.BDAbstractLocationListener; impor ...
- Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”
今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...
随机推荐
- Android - 监听Activity点击无效
监听Activity点击无效 本文地址: http://blog.csdn.net/caroline_wendy Activity须要先在Manifest注冊,才干在app中使用; Manifest: ...
- 三分钟教你学Git(十四) 之 线下传输仓库
有时候还有一个人不能从远程直接clone仓库或者说由于非常大,clone非常慢或其他原因.我们能够使用bundle命令将Git仓库打包,然后通过U盘或者是其他介质拷贝给他,这样他拿到打包好的仓库后能够 ...
- mac Git本地服务器配置
本文转载至 http://blog.csdn.net/piziliweiguang/article/details/9311791 XCode 默认支持 Git 作为代码仓库,当我们新建一个仓库的 ...
- CodeForces 559C Gerald and Gia (格路+容斥+DP)
CodeForces 559C Gerald and Gia 大致题意:有一个 \(N\times M\) 的网格,其中有些格子是黑色的,现在需要求出从左上角到右下角不经过黑色格子的方案数(模 \(1 ...
- C++11 条件变量
C++11中的条件变量提供了用户等待的同步机制,在同步队列的应用中有很大的便利. 简单同步队列代码如下(SimpleSyncQueue.h): #ifndef SIMPLESYNCQUEUE_H #d ...
- kbmMemTable关于内存表的使用,以及各种三层框架的评价
关于内存表的使用(kbmMemTable) 关于内存表的使用说明一. Delphi使用内存表1.1 Delphi创建内存表步骤:1. 创建一个Ttable实例.2. 设置一个DataBaseName为 ...
- linux内存操作--ioremap和mmap
最近在做视频输出相关的东西,对于预留给framebuffer的内存使用不是很清楚,现在找到一些资料整理一下,以备使用.if (想看使用方法) goto 使用方法: 对于一个系统来讲,会有很多的外 ...
- 51nod 1600 Simple KMP
又被机房神犇肉丝哥哥和glory踩爆了 首先这个答案的输出方式有点套路,当前的答案=上一个答案+每一个后缀的f值=上一个答案+上一次算的每个后缀的f值+当前每个后缀的深度 这个题意给了个根深度为-1有 ...
- Scanner、String(java基础知识十二)
1.Scanner的概述和方法介绍 * A:Scanner的概述 * 是一个从键盘输入的类,有final修饰,不能被子类继承 * Scanner sc = new Scanner(System.in) ...
- jLim - 紧凑的 JavaScript 框架
1. [代码][JavaScript]代码 /*! * jLim Core * * jLim is a small JavaScript base code. It can be used t ...