【高德地图API】从零开始学高德JS API(二)地图控件与插件

您所在的位置:网站首页 高德地图测距工具的价值和用途 【高德地图API】从零开始学高德JS API(二)地图控件与插件

【高德地图API】从零开始学高德JS API(二)地图控件与插件

2024-07-15 13:54:45| 来源: 网络整理| 查看: 265

原文:【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发者使用,减少开发者工作量的二级API接口。除了官方通用的鱼骨、鹰眼控件,还有大量官方开发的地图插件,类似谷歌的lib。当然本文还会介绍自定义插件的使用。 

 -------------------------------------------------------------------------------------------------

第一部分 控件

目前官方支持的控件包含:缩放控制条-地图工具条(ToolBar)、缩略图-鹰眼(OverView)、比例尺(Scale)。

之所以把这三个控件放到一起讲,是因为他们的操作几乎一样,使用plugin添加控件,然后都有show和hide方法。

预览图:

1、  缩放控制条-地图工具条(ToolBar) 

工具条有很多效果,比如隐藏标尺,隐藏方向键盘,甚至还有HTML5定位。

 

添加鱼骨:

mapObj.plugin(["AMap.ToolBar"],function(){ //在地图中添加ToolBar插件 toolBar = new AMap.ToolBar(); mapObj.addControl(toolBar); });

 

移除鱼骨:

toolBar.hide();

 

完整鱼骨:

toolBar.show(); toolBar.showRuler(); toolBar.showDirection();

 

只有方向盘:

toolBar.show(); toolBar.showDirection(); toolBar.hideRuler();

 

只有长标尺:

toolBar.show(); toolBar.hideDirection(); toolBar.showRuler();

 

只有短标尺:

toolBar.show(); toolBar.hideRuler(); toolBar.hideDirection();

 

2、  缩略图-鹰眼(OverView) 

可以设置鹰眼是否打开,是否显示。显示就是isOpen:true;

打开如下左图open(),关闭状如下右图close()。

mapObj.plugin(["AMap.OverView"],function(){ //在地图中添加鹰眼插件 //加载鹰眼 overView = new AMap.OverView({ visible:true //初始化显示鹰眼 }); mapObj.addControl(overView); overView.open(); //展开鹰眼 });

 

3、  比例尺(Scale) 

mapObj.plugin(["AMap.Scale"],function(){ //加载比例尺插件 scale = new AMap.Scale(); mapObj.addControl(scale); scale.show(); });

 

------------------------------------------------------------------------------------------------

第二部分:插件

官方开发的插件有:圆编辑插件 (AMap.CircleEditor)、折线、多边形编辑插件 (AMap.PolyEditor)、鼠标工具插件 (AMap.MouseTool)、距离量测插件 (AMap.RangingTool) 、地图类型切换插件 (AMap.MapType)。

1、  圆编辑插件 (AMap.CircleEditor) 

添加圆形

circle = new AMap.Circle({ //圆形编辑器的样式 map: mapObj, center:new AMap.LngLat("116.40332221984863","39.90025505675715"), radius:1000, strokeColor: "#F33", strokeOpacity: 1, strokeWeight: 3, fillColor: "ee2200", fillOpacity: 0.35 });

 

打开编辑器

mapObj.plugin(["AMap.CircleEditor"],function(){ circleEditor = new AMap.CircleEditor(mapObj,circle); //创建圆形编辑器对象 circleEditor.open(); //打开圆形编辑器 });

 

关闭编辑器

circleEditor.close();

 

移除圆形

circle.hide();

 

圆形编辑器效果图:

 

2、  折线、多边形编辑插件 (AMap.PolyEditor)

 添加多边形

var arr=new Array();//经纬度坐标数组 arr.push(new AMap.LngLat("116.403322","39.920255")); arr.push(new AMap.LngLat("116.410703","39.897555")); arr.push(new AMap.LngLat("116.402292","39.892353")); arr.push(new AMap.LngLat("116.389846","39.891365")); polygon=new AMap.Polygon({ path:arr, //设置多边形轮廓的节点数组 strokeColor:"#0000ff", strokeOpacity:0.2, strokeWeight:3, fillColor: "#f5deb3", fillOpacity: 0.35 }); //地图上添加多边形 mapObj.addOverlays(polygon);

 

开启多边形编辑器

//构造多边形编辑对象,并开启多边形的编辑状态 mapObj.plugin(["AMap.PolyEditor"],function(){ polygonEditor = new AMap.PolyEditor(mapObj,polygon); polygonEditor.open(); });

 

关闭多边形编辑器,并移除多边形

polygonEditor.close(); polygon.hide();

 

多边形编辑器效果图:

 

3、  鼠标工具插件 (AMap.MouseTool)

鼠标工具有9种,就不一一举栗子了。

 

 

添加鼠标工具

mapObj.plugin(["AMap.MouseTool"],function(){ //鼠标工具插件 mousetool = new AMap.MouseTool(mapObj); });

 

栗子1:鼠标打点工具

mousetool.marker(); //使用鼠标工具,在地图上画标记点

 

栗子2:鼠标测距工具

mousetool.measureArea();

 

栗子3:鼠标画圆形

mousetool.circle();

 

 

栗子4:鼠标画矩形

mousetool.rectangle();

 

……

……

……

之后的都不一一举例了,大家查一下类参考,直接换个类名就行。

 

关闭鼠标工具

mousetool.close(true);

 

4、  距离量测插件 (AMap.RangingTool)

 创建测距插件,并且先隐藏。

mapObj.plugin(["AMap.RangingTool"],function(){ ruler = new AMap.RangingTool(mapObj); AMap.event.addListener(ruler,"end",function(e){ ruler.turnOff(); }); });

 

打开并显示测距工具

ruler.turnOn();

 

隐藏测距工具

ruler.turnOff(); mapObj.clearMap();

 

预览效果

 

5、  地图类型切换插件 (AMap.MapType) 

mapObj.plugin(["AMap.MapType"],function(){ //添加地图类型切换插件 //地图类型切换 mapType= new AMap.MapType({defaultType:2,showRoad:true}); mapObj.addControl(mapType); });

效果图预览

 ----------------------------------------------------------------------------------------------------------

第三部分:自定义插件

首先定义一个命名空间

//定义一个插件类 homeControlDiv,AMap为命名空间 AMap.homeControlDiv=function(){ }

然后往里面填充你的内容,包括功能、事件

AMap.homeControlDiv.prototype = { addTo: function(map, dom){ dom.appendChild(this._getHtmlDom(map)); }, _getHtmlDom:function(map){ this.map=map; // 创建一个能承载控件的容器 var controlUI=document.createElement("DIV"); controlUI.style.width='80px'; //设置控件容器的宽度 controlUI.style.height='20px'; //设置控件容器的高度 controlUI.style.backgroundColor='white'; controlUI.style.borderStyle='solid'; controlUI.style.borderWidth='2px'; controlUI.style.cursor='pointer'; controlUI.style.textAlign='center'; // 设置控件的位置 controlUI.style.position='absolute'; controlUI.style.left='120px'; //设置控件离地图的左边界的偏移量 controlUI.style.top='5px'; //设置控件离地图上边界的偏移量 controlUI.style.zIndex='300'; //设置控件在地图上显示 // 设置控件字体样式 controlUI.style.fontFamily='Arial,sens-serif'; controlUI.style.fontSize='12px'; controlUI.style.paddingLeft='4px'; controlUI.style.paddingRight='4px'; controlUI.innerHTML="返回中心"; // 设置控件响应点击onclick事件 controlUI.onclick = function(){ map.setCenter(new AMap.LngLat(116.404, 39.915)); } return controlUI; } }

最后将这个控件添加到地图上:

var homeControl=new AMap.homeControlDiv(mapObj); //新建自定义插件对象 mapObj.addControl(homeControl); //地图上添加插件

 隐藏这个自定义控件:(直接对控件整个div进行隐藏)

controlUI.style.display='none';

 

 ------------------------------------------------------------------------------------------------------

第四部分:效果展示

http://zhaoziang.com/amap/zero_2_1.html



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭