HTML5 地理定位 【来自百度应用分享平台】
百度给的地图API接口相当完善,复制过来一下,以后备用
<!--引入百度地图API--> <scriptsrc="http://api.map.baidu.com/api?v=1.4"type="text/javascript"></script>
首先引入百度地图API
之后创建地图:
var mp =newBMap.Map('map');//map此处为id名
var geo = navigator.geolocation;
之后所有的方法操作,都是使用mp.方法的方式进行书写即可,例如,希望开启地图拖拽:
mp.enableDragging();
如下为百度的方法接口:
构造函数
构造函数 | 描述 |
---|---|
Map(container:String|HTMLElement[, opts:MapOptions]) | 在指定的容器内创建地图实例,之后需要调用Map.centerAndZoom()方法对地图进行初始化。未进行初始化的地图将不能进行任何操作。 |
配置方法
方法 | 返 回 值 | 描述 |
---|---|---|
enableDragging() | none | 启用地图拖拽,默认启用。 |
disableDragging() | none | 禁用地图拖拽。 |
enableScrollWheelZoom() | none | 启用滚轮放大缩小,默认禁用。 |
disableScrollWheelZoom() | none | 禁用滚轮放大缩小。 |
enableDoubleClickZoom() | none | 启用双击放大,默认启用。 |
disableDoubleClickZoom() | none | 禁用双击放大。 |
enableKeyboard() | none | 启用键盘操作,默认禁用。键盘的上、下、左、右键可连续移动地图。同时按下其中两个键可使地图进行对角移动。PgUp、PgDn、Home和End键会使地图平移其1/2的大小。+、-键会使地图放大或缩小一级。 |
disableKeyboard() | none | 禁用键盘操作。 |
enableInertialDragging() | none |
启用地图惯性拖拽,默认禁用。
(自 1.1 新增) |
disableInertialDragging() | none |
禁用地图惯性拖拽。
(自 1.1 新增) |
enableContinuousZoom() | none |
启用连续缩放效果,默认禁用。
(自 1.1 新增) |
disableContinuousZoom() | none |
禁用连续缩放效果。
(自 1.1 新增) |
enablePinchToZoom() | none |
启用双指操作缩放,默认启用。
(自 1.1 新增) |
disablePinchToZoom() | none |
禁用双指操作缩放。
(自 1.1 新增) |
enableAutoResize() | none |
启用自动适应容器尺寸变化,默认启用。
(自 1.2 新增) |
disableAutoResize() | none |
禁用自动适应容器尺寸变化。
(自 1.2 新增) |
setDefaultCursor(cursor:String) | none |
设置地图默认的鼠标指针样式。参数cursor应符合CSS的cursor属性规范。
(自 1.1 新增) |
getDefaultCursor() | String |
返回地图默认的鼠标指针样式。
(自 1.1 新增) |
setDraggingCursor(cursor:String) | none |
设置拖拽地图时的鼠标指针样式。参数cursor应符合CSS的cursor属性规范。
(自 1.1 新增) |
getDraggingCursor() | String |
返回拖拽地图时的鼠标指针样式。
(自 1.1 新增) |
setMinZoom(zoom:Number) | none |
设置地图允许的最小级别。取值不得小于地图类型所允许的最小级别。
(自 1.2 新增) |
setMaxZoom(zoom:Number) | none |
设置地图允许的最大级别。取值不得大于地图类型所允许的最大级别。
(自 1.2 新增) |
地图状态方法
方法 | 返回值 | 描述 |
---|---|---|
getBounds() | Bounds | 返回地图可视区域,以地理坐标表示。 |
getCenter() | Point | 返回地图当前中心点。 |
getDistance(start:Point, end:Point) | Number | 返回两点之间的距离,单位是米。(自 1.1 新增) |
getMapType() | MapType | 返回地图类型。(自 1.2 新增) |
getSize() | Size | 返回地图视图的大小,以像素表示。 |
getViewport(view: Array<Point>[, viewportOptions: ViewportOptions]) | Viewport | 根据提供的地理区域或坐标获得最佳的地图视野,返回的对象中包含center和zoom属性,分别表示地图的中心点和级别。此方法仅返回视野信息,不会将新的中心点和级别做用到当前地图上。(自 1.1 新增) |
getZoom() | Number | 返回地图当前缩放级别。 |
修改地图状态方法
方法 | 返回值 | 描述 |
---|---|---|
centerAndZoom(center:Point, zoom:Number) | none |
设初始化地图。
如果center类型为Point时,zoom必须赋值,赋值范围为3-19级,若调用高清底图(针对移动端开发)时,zoom赋值范围为3-18级。如果center类型为字符串时,比如“北京”,zoom可以忽略,地图将自动根据center适配最佳zoom级别。 |
panTo(center:Point[, opts:PanOptions]) | none | 将地图的中心点更改为给定的点。如果该点在当前的地图视图中已经可见,则会以平滑动画的方式移动到中心点位置。可以通过配置强制移动过程不使用动画效果。 |
panBy(x:Number, y:Number[, opts: PanOptions]) | none | 将地图在水平位置上移动x像素,垂直位置上移动y像素。如果指定的像素大于可视区域范围或者在配置中指定没有动画效果,则不执行滑动效果。 |
reset() | none | 重新设置地图,恢复地图初始化时的中心点和级别。 |
setCenter(center:Point|String) | none | 设置地图中心点。center除了可以为坐标点以外,还支持城市名。注:使用城市名进行设置时该方法是异步执行,使用坐标点设置时该方法不是异步执行。 |
setCurrentCity(city:String) | none |
设置地图城市,注意当地图初始化时的类型设置为BMAP_PERSPECTIVE_MAP时,需要在调用centerAndZoom之前调用此方法设置地图所在城市。例如:
var map = new BMap.Map(“container”, {mapType: BMAP_PERSPECTIVE_MAP}); map.setCurrentCity(“北京市”); map.centerAndZoom(new BMap.Point(116.404, 39.915), 18); 注意:初始化的坐标应与您设置的城市对应,否则地图将无法正常显示。如果地图初始化为BMAP_NORMAL_MAP类型,则在调用setMapType切换地图类型时也要调用此方法。(自 1.1 新增) |
setMapType(mapType:MapTypes) | none | 设置地图类型。注意,当设置地图类型为BMAP_PERSPECTIVE_MAP时,需要调用map.setCurrentCity方法设置城市。(自 1.1 新增) |
setViewport(view:Array<Point>|Viewport[, viewportOptions: ViewportOptions]) | none | 根据提供的地理区域或坐标设置地图视野,调整后的视野会保证包含提供的地理区域或坐标。(自 1.1 新增) |
zoomTo(zoom:Number) | none | (自1.2废弃) |
setZoom(zoom:Number) | none | 将视图切换到指定的缩放等级,中心点坐标不变。注意:当有信息窗口在地图上打开时,地图缩放将保证信息窗口所在的坐标位置不动。(自1.2新增) |
highResolutionEnabled() | Boolean | 是否使用高分辨率底图。仅当mapOptions.enableHighResolution属性为true且设备支持高分辨率时返回true。 |
zoomIn() | none | 放大一级视图。 |
zoomOut() | none | 缩小一级视图。 |
addHotspot(hotspot:Hotspot) | none | 为地图添加热区。(自 1.2 新增) |
removeHotspot(hotspot:Hotspot) | none | 移除某个地图热区。(自 1.2 新增) |
clearHotspots() | none | 清空地图所有热区。(自 1.2 新增) |
控件方法
方法 | 返回值 | 描述 |
---|---|---|
addControl(control:Control) | none | 将控件添加到地图,一个控件实例只能向地图中添加一次。 |
removeControl(control:Control) | none | 从地图中移除控件。如果控件从未被添加到地图中,则该移除不起任何作用。 |
getContainer() | HTMLElement | 返回地图的容器元素。当创建用户自定义控件时,需要自行实现Control.initialize()方法,并将控件的容器元素添加到地图上,通过此方法可获得地图容器。 |
右键菜单方法
方法 | 返回值 | 描述 |
---|---|---|
addContextMenu(menu:ContextMenu) | none | 添加右键菜单。 |
removeContextMenu(menu:ContextMenu) | none | 移除右键菜单。 |
覆盖物方法
方法 | 返回值 | 描述 |
---|---|---|
addOverlay(overlay:Overlay) | none | 将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次。 |
removeOverlay(overlay:Overlay) | none | 从地图中移除覆盖物。如果覆盖物从未被添加到地图中,则该移除不起任何作用。 |
clearOverlays() | none | 清除地图上所有覆盖物。 |
openInfoWindow(infoWnd:InfoWindow, point:Point) | none | 在地图上打开信息窗口。 |
closeInfoWindow() | none | 关闭在地图上打开的信息窗口。在标注上打开的信息窗口也可通过此方法进行关闭。 |
pointToOverlayPixel(point:Point) | Pixel | 根据地理坐标获取对应的覆盖物容器的坐标,此方法用于自定义覆盖物。(自 1.1 新增) |
overlayPixelToPoint(pixel:Pixel) | Point | 根据覆盖物容器的坐标获取对应的地理坐标。(自 1.1 新增) |
getInfoWindow() | InfoWindow|Null | 返回地图上处于打开状态的信息窗的实例。当地图没有打开的信息窗口时,此方法返回null。(自 1.1 新增) |
getOverlays() | Array<Overlay> | 返回地图上的所有覆盖物。(自 1.1 新增) |
getPanes() | MapPanes | 返回地图覆盖物容器列表。(自 1.1 新增) |
地图图层方法
方法 | 返回值 | 描述 |
---|---|---|
addTileLayer(tileLayer:TileLayer) | none | 添加一个自定义地图图层。 |
removeTileLayer(tilelayer:TileLayer) | none | 移除一个自定义地图图层。 |
getTileLayer(mapType:String) | TileLayer | 通过地图类型得到一个地图图层对象。 |
坐标变换
方法 | 返回值 | 描述 |
---|---|---|
pixelToPoint(pixel:Pixel) | Point | 像素坐标转换为经纬度坐标。 |
pointToPixel(point:Point) | Pixel | 经纬度坐标转换为像素坐标。 |
事件
事件 | 参数 | 描述 |
---|---|---|
click | {type, target, point, pixel, overlay} |
左键单击地图时触发此事件。
当双击时,产生的事件序列为: click click dblclick (自 1.1 更新) |
dblclick | {type, target, pixel, point} | 鼠标双击地图时会触发此事件。 |
rightclick | {type, target, point, pixel, overlay} |
右键单击地图时触发此事件。
当双击时,产生的事件序列为: rightclick rightclick rightdblclick (自 1.1 更新) |
rightdblclick | {type, target, point, pixel, overlay} |
右键双击地图时触发此事件。
(自 1.1 新增) |
maptypechange | {type, target} |
地图类型发生变化时触发此事件。
(自 1.1 新增) |
mousemove | {type, target, point, pixel, overlay} |
鼠标在地图区域移动过程中触发此事件。
(自 1.1 新增) |
mouseover | {type, target} |
鼠标移入地图区域时触发此事件。
(自 1.2 新增) |
mouseout | {type, target} |
鼠标移出地图区域时触发此事件。
(自 1.2 新增) |
movestart | {type, target} | 地图移动开始时触发此事件。 |
moving | {type, target} | 地图移动过程中触发此事件。 |
moveend | {type, target} | 地图移动结束时触发此事件。 |
zoomstart | {type, target} | 地图更改缩放级别开始时触发触发此事件。 |
zoomend | {type, target} | 地图更改缩放级别结束时触发触发此事件。 |
addoverlay | {type, target} | 当使用Map.addOverlay()方法向地图中添加单个覆盖物时会触发此事件。 |
addcontrol | {type, target} | 当使用Map.addControl()方法向地图中添加单个控件时会触发此事件。 |
removecontrol | {type, target} | 当使用Map.removeControl()方法移除单个控件时会触发此事件。 |
removeoverlay | {type, target} | 当使用Map.removeOverlay()方法移除单个覆盖物时会触发此事件。 |
clearoverlays | {type, target} | 当使用Map.clearOverlays()方法一次性移除全部覆盖物时会触发此事件。 |
dragstart | {type, target, pixel, point} | 开始拖拽地图时触发。 |
dragging | {type, target, pixel, point} | 拖拽地图过程中触发。 |
dragend | {type, target, pixel, point} | 停止拖拽地图时触发。 |
addtilelayer | {type, target} | 添加一个自定义地图图层时触发此事件。 |
removetilelayer | {type, target} | 移除一个自定义地图图层时触发此事件。 |
load | {type, target, pixel, point, zoom} | 调用Map.centerAndZoom()方法时会触发此事件。这表示位置、缩放层级已经确定,但可能还在载入地图图块。 |
resize | {type, target, size} | 地图可视区域大小发生变化时会触发此事件。 |
hotspotclick | {type, target, hotspots} | 点击热区时触发此事件。(自 1.2 新增) |
hotspotover | {type, target, hotspots} | 鼠标移至热区时触发此事件。(自 1.2 新增) |
hotspotout | {type, target, hotspots} | 鼠标移出热区时触发此事件。(自 1.2 新增) |
tilesloaded | {type, target} | 当地图所有图块完成加载时触发此事件。(自 1.2 新增) |
<!DOCTYPE html>
<html>
<head>
<metacharset="utf-8"/>
<title> 显示自己的位置 </title>
<styletype="text/css">
</style>
<!--引入百度地图API-->
<scriptsrc="http://api.map.baidu.com/api?v=1.4"type="text/javascript"></script>
</head>
<body>
<divid="map"style="width:500px;height:320px"></div>
</body>
<scripttype="text/javascript">
function initialize(){
var mp =newBMap.Map('map');//map为id名
var geo = navigator.geolocation;
geo.getCurrentPosition(function(pos){
var point =newBMap.Point(pos.coords.longitude,pos.coords.latitude);
mp.centerAndZoom(point,10);//设置中心,放大系数
var marker =newBMap.Marker(point);// 创建标注
mp.addOverlay(marker);
mp.enableDragging();//允许拖拽
mp.enableScrollWheelZoom();//允许放大
var opts ={type:BMAP_NAVIGATION_CONTROL_ZOOM}
mp.addControl(newBMap.NavigationControl(opts));//添加导航控件
});
}
window.onload = initialize;
</script>
</html>
HTML5 地理定位 【来自百度应用分享平台】的更多相关文章
- HTML5地理定位,百度地图API,知识点熟悉
推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位 if (navigator.geolocation) { alert('支持地理定位'); } e ...
- 基于浏览器的HTML5地理定位
基于浏览器的HTML5地理定位 地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML ...
- HTML5地理定位(已知经纬度,计算两个坐标点之间的距离)
事实上,地球上任意两个坐标点在地平线上的距离并不是直线,而是球面的弧线. 下面介绍如何利用正矢公式计算已知经纬度数据的两个坐标点之间的距离.半正矢公式也成为Haversine公式,它最早时航海学中的重 ...
- 小强的HTML5移动开发之路(18)——HTML5地理定位
来自:http://blog.csdn.net/dawanganban/article/details/18192091 在前面的<小强的HTML5移动开发之路(2)--HTML5的新特性> ...
- HTML5 — 地理定位
Geolocation:地理定位,获取当前浏览器所在的地理坐标信息(包括经度.纬度.海拔高度.移动速度),实现LBS应用(Location Based Service)——基于定位的服务,如订 餐 ...
- 手机端网页使用html5地理定位获取位置失败的解决办法
网上有很多关于html5 geolocation 获取地理定位的方法,我试了下,只有在IE edge浏览器可以成功获取到,在chrome,firefox,手机端的safari,QQ浏览器,微信浏览器, ...
- 第182天:HTML5——地理定位
HTML5 Geolocation(地理定位) HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支 ...
- Html5——地理定位及地图
常用的navigator.geolocation对象有以下三种方法: 获取当前地理位置:navigator.geolocation.getCurrentPosition(success_callbac ...
- HTML5地理定位-Geolocation API
HTML5提供了一组Geolocation API,来自navigator定位对象的子对象,获取用户的地理位置信息Geolocation API使用方法:1.判断是否支持 navigator.geol ...
随机推荐
- mysql utf8字符集下使用DES_ENCRYPT
DES_ENCRYPT() 加密字符串后内容为空 改变字符集latin1 可以保存和解密(DES_DECRYPT)
- Vue1.0常用语法
摘要: var vm = new Vue({ el: "选择器", 挂载到页面的那个元素里,即确定vue的作用范围 外部可通过vm.$el访问,得到的是一个原生dom元素,可进行对 ...
- Java 之多线程通信(等待/唤醒)
多线程间通信: 多个线程在处理同一个资源, 但是任务却不同. 等待/唤醒机制 涉及的方法 wait(): 让线程处于冻结状态, 被 wait() 的线程会被存储到线程池中 notify(): 唤醒线程 ...
- 安装Centos 7操作系统
一.安装前准备 VMware workstation.CentOS-7-x86_64 系统镜像. 二.开始新建虚拟机 选择典型-下一步 选择稍后安装操作系统-下一步 选择LINUX-CentOS ...
- pycharm调试
pycharm调试 flask app调试: 1.打开edit configurations面板 run===>edit configurations(图一或图二处都可以) 2.配置项目信息 点 ...
- 基于docker 搭建Elasticsearch5.6.4 分布式集群
说明: 准备2台机器,我这里有192. 和 192.168.0.164 192.168.0.164 作为master 192.168.0.107 作为普通node 一.环境 .docker 环境 .E ...
- ionic3使用echart插件
安装 看官方文档可以知道ECharts可以在webpack中使用看这里,故我们可以使用npm下载安装到项目中 npm install echarts --save //下载ECharts npm in ...
- __name__ = '__main__'有什么用
很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...
- 微信小程序组件scroll-view
视图容器scroll-view :官方文档 Demo Code var order = ['red', 'yellow', 'blue', 'green', 'red'] Page({ data: { ...
- LINQ 获取当前数组中出现次数最多的元素
LINQ 获取当前数组中出现次数最多的元素 1 List<string> a = new List<string>(); a.Add( ...