百度地图API基本使用(一)

百度地图API基本使用(一),第1张

由于最近项目有需要,所以最近开始研究百度地图API的使用,简单的介绍一下 百度地图JavaScript API 它的使用,希望能够对小伙伴们有所帮助,后续有机会再做深入的研究。

有兴趣的小伙伴可以自行查找百度地图API

百度地图开放平台开发文档中的JavaScript API

在使用百度地图之前,我们需要拥有一个自己的百度账号,申请注册成为百度开发者,然后我们需要创建一个浏览器端应用,就可以获取到一个唯一的服务秘钥(AK)

申请秘钥(AK)

最终html中的内容如下:

实现效果如下:可以进行移动和放大

根据id去获取对应的元素就是我们后续百度地图所要去填充的元素,其实创建容器的时候还有一个coordsType属性去控制坐标的类型,不过我们不配置的话一般都是默认配置为5也就是bd0ll坐标类型, 感兴趣的小伙伴可以去看一看这些坐标类型都有哪些?可以来评论区交流学习

有两种设置中心点的方式,一种是通过上面那样根据经纬度去设置中心点坐标,第二种就是根据城市名作为中心点

Ps:map是我们的容器不要忘了

1.初始化地图时,进行关闭配置

2.使用地图的方法进行配置

1.地图初始化

添加控件前,地图需要进行初始化。例如,要将标准地图控件添加到地图中,可在代码中添加如下内容:

2.添加多个控件

在本例中我们向地图添加一个平移缩放控件、一个比例尺控件和一个缩略图控件。在地图中添加控件后,它们即刻生效。

初始化控件时,可提供一个可选参数,其中的anchor和offset属性共同控制控件在地图上的位置。 anchor表示控件的停靠位置,即控件停靠在地图的哪个角。当地图尺寸发生变化时,控件会根据停靠位置的不同来调整自己的位置。

个性化地图样式编辑器

通过样式ID调用个性化地图样式(推荐)

1.创建个性化地图样式

进入地图开放平台控制台页面,在我的地图中,创建一个地图样式:

2.编辑样式

点击创建的地图样式,进入样式编辑器,根据您的需求自由编辑地图样式:

3.发布样式并获取样式ID

完成编辑后,在我的地图或者编辑器中发布该地图样式,获取发布后生成的样式ID:

4.在JavaScript API中应用地图样式

将第三步中获取的样式ID作为setMapStyleV2方法的参数。

相关代码如下:

注意:

1.使用个性化地图前,请参考Hello World构建基础地图;

2.setMapStyleV2方法需要在地图初始化(centerAndZoom)完成后执行;

3.样式更新不会改变样式ID。因此如果有更新样式的需求,重新编辑发布就可以完成更新。不需要修改JavaScript API调用代码;

4.如果样式ID在控制台中被删除,但JavaScript API还在继续调用。那么将会渲染默认样式的地图;

通过样式JSON调用个性化地图样式

1.获取样式JSON

前序流程和样式ID调用地图样式流程一致,进入我的地图,创建一个地图样式,进入编辑器编辑完成后,直接通过编辑器中的“下载JSON”功能获取JSON代码:

2.在JavaScript API中应用地图样式

将上一步中获取的样式JSON作为setMapStyleV2方法的参数。

相关代码如下:

设置后地图效果如下:

上面这些都是一些简单的使用,后续我在使用的过程中遇到的一些问题以及解决过程,新的API的使用会持续更新分享,百度地图的API开发文档给的还是很全面的,不过就是目前他提供的都是一些在线开发,对于一些内网的公司就不太友好了,所以后续这块我需要去做一下离线开发的研究,等我把离线地图开发弄好之后,再给大家分享。

感谢诸君的观看,文中如有纰漏,欢迎在评论区来交流。如果这篇文章帮助到了你,欢迎点赞和关注。

首先打开百度地图开放平台

点击开发菜单,选择地图生成器;

切换城市;

输入具体地理位置名称,比如平凉市汽车东站,点击查找定位经纬度;

点击设置地图;具体参数,可自由设置;

添加标注,鼠标点击点标记图标,然后在地图中找到具体位置,点击鼠标左键进行标注;

输入标记名称,和备注,点击保存;

预览;

点击获取代码,然后复制代码;将代码粘贴到新建的HTML中保存即可使用。

1.进入:http://dev.baidu.com/wiki/static/map/API/tool/creatMap/ (创建地图-百度地图API所见即所得工具,百度官方地址,大家放心使用)

切换城市,搜索需标注位置。(如下图:)

设置地图:大家可以对网站显示地图的宽高进行设置,其余选项不动。

添加标注:点击第一个图标后,在右侧找到自己的位置,单击鼠标左键可定位。标记图标处可更换图标形状,名称和备注填入位置相关信息。(如下图:)

步骤阅读

完成以上4步后,点获取代码。

获取代码如下:(注意:通常我们在网页中只要插入以下代码,小虫标注出来,其余的可不用。)

1.在<head></head>间插入下面代码:这是样式和JS脚本。

<!--引用百度地图API-->

<style type="text/css">

html,body{margin:0padding:0}

.iw_poi_title {color:#CC5522font-size:14pxfont-weight:boldoverflow:hiddenpadding-right:13pxwhite-space:nowrap}

.iw_poi_content {font:12px arial,sans-serifoverflow:visiblepadding-top:4pxwhite-space:-moz-pre-wrapword-wrap:break-word}

</style>

<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>

2.在<body></body>间需要显示地图的位置放入以下代码:(该代码调用地图)

<!--百度地图容器-->

<div style="width:697pxheight:550pxborder:#ccc solid 1px" id="dituContent"></div>

3.以下代码放在页面最底端(其实可放在页面任意位置。)

<script type="text/javascript">

//创建和初始化地图函数:

function initMap(){

createMap()//创建地图

setMapEvent()//设置地图事件

addMapControl()//向地图添加控件

addMarker()//向地图中添加marker

}

//创建地图函数:

function createMap(){

var map = new BMap.Map("dituContent")//在百度地图容器中创建一个地图

var point = new BMap.Point(115.949652,28.693851)//定义一个中心点坐标

map.centerAndZoom(point,18)//设定地图的中心点和坐标并将地图显示在地图容器中

window.map = map//将map变量存储在全局

}

//地图事件设置函数:

function setMapEvent(){

map.enableDragging()//启用地图拖拽事件,默认启用(可不写)

map.enableScrollWheelZoom()//启用地图滚轮放大缩小

map.enableDoubleClickZoom()//启用鼠标双击放大,默认启用(可不写)

map.enableKeyboard()//启用键盘上下左右键移动地图

}

//地图控件添加函数:

function addMapControl(){

//向地图中添加缩放控件

var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE})

map.addControl(ctrl_nav)

//向地图中添加缩略图控件

var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1})

map.addControl(ctrl_ove)

//向地图中添加比例尺控件

var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT})

map.addControl(ctrl_sca)

}

//标注点数组

var markerArr = [{title:"百恒网络",content:"电话:0791-88117053<br/>手机:15079002975",point:"115.950312|28.693447",isOpen:1,icon:{w:23,h:25,l:46,t:21,x:9,lb:12}}

]

//创建marker

function addMarker(){

for(var i=0i<markerArr.lengthi++){

var json = markerArr[i]

var p0 = json.point.split("|")[0]

var p1 = json.point.split("|")[1]

var point = new BMap.Point(p0,p1)

var iconImg = createIcon(json.icon)

var marker = new BMap.Marker(point,{icon:iconImg})

var iw = createInfoWindow(i)

var label = new BMap.Label(json.title,{"offset":new BMap.Size(json.icon.lb-json.icon.x+10,-20)})

marker.setLabel(label)

map.addOverlay(marker)

label.setStyle({

borderColor:"#808080",

color:"#333",

cursor:"pointer"

})

(function(){

var index = i

var _iw = createInfoWindow(i)

var _marker = marker

_marker.addEventListener("click",function(){

this.openInfoWindow(_iw)

})

_iw.addEventListener("open",function(){

_marker.getLabel().hide()

})

_iw.addEventListener("close",function(){

_marker.getLabel().show()

})

label.addEventListener("click",function(){

_marker.openInfoWindow(_iw)

})

if(!!json.isOpen){

label.hide()

_marker.openInfoWindow(_iw)

}

})()

}

}

//创建InfoWindow

function createInfoWindow(i){

var json = markerArr[i]

var iw = new BMap.InfoWindow("<b class='iw_poi_title' title='" + json.title + "'>" + json.title + "</b><div class='iw_poi_content'>"+json.content+"</div>")

return iw

}

//创建一个Icon

function createIcon(json){

var icon = new BMap.Icon("http://map.baidu.com/image/us_cursor.gif", new BMap.Size(json.w,json.h),{imageOffset: new BMap.Size(-json.l,-json.t),infoWindowOffset:new BMap.Size(json.lb+5,1),offset:new BMap.Size(json.x,json.h)})

return icon

}

initMap()//创建和初始化地图

</script>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6096400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存