<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0MA953dkYQM4fQriWe6NaII8QpjeCCZh"></script>
<!--加载鼠标绘制工具-->
<script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
<link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
</head>
<body>
<div id="allmap" style="overflow:hidden;zoom:1;position:relative;">
<div id="map" style="height:500px;-webkit-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;"></div>
</div>
<div id="result">
<input type="button" value="获取绘制的覆盖物个数" onclick="alert(overlays.length)" />
<input type="button" value="清除所有覆盖物" onclick="clearAll()" />
</div>
<script>
// 百度地图API功能
var map = new BMap.Map('map');
var poi = new BMap.Point(116.307852, 40.057031);
map.centerAndZoom(poi, 16); //设置中心点坐标和地图级别
map.enableScrollWheelZoom(); //启用鼠标滚动对地图放大缩小
//鼠标绘制完成回调方法 获取各个点的经纬度
var overlays = [];
var overlaycomplete = function(e) {
overlays.push(e.overlay);
if(overlays.length>1){
alert("只能绘制一个区域!!!")
}
var path = e.overlay.getPath(); //Array<Point> 返回多边型的点数组
console.log(path)
for (var i = 0; i < path.length; i++) {
console.log("lng:" + path[i].lng + "\n lat:" + path[i].lat);
}
};
var styleOptions = {
strokeColor: "red", //边线颜色。
fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 3, //边线的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
strokeStyle: 'solid' //边线的样式,solid或dashed。
}
//实例化鼠标绘制工具
var drawingManager = new BMapLib.DrawingManager(map, {
isOpen: false, //是否开启绘制模式
enableDrawingTool: true, //是否显示工具栏
drawingMode: BMAP_DRAWING_POLYGON, //绘制模式 多边形
drawingToolOptions: {
anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
offset: new BMap.Size(5, 5), //偏离值
drawingModes: [
BMAP_DRAWING_POLYGON,
BMAP_DRAWING_CIRCLE,
BMAP_DRAWING_RECTANGLE
]
},
polygonOptions: styleOptions //多边形的样式
});
//添加鼠标绘制工具监听事件,用于获取绘制结果
drawingManager.addEventListener('overlaycomplete', overlaycomplete);
function clearAll() {
for (var i = 0; i < overlays.length; i++) {
map.removeOverlay(overlays[i]);
}
overlays.length = 0
}
</script>
</body>
</html>
以上代码用vue 怎么 改写啊???求前端大神指教 感激不尽!!!
vue整合百度地图,参考下:
<!--地图展示-->
<template>
<div id="allmap"></div>
</template>
<script>
export default {
name:'',
data(){
return{
}
},
mounted() {
//初始化
// 百度地图API功能
var map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]}));
map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
}
}
</script>
<style scoped>
body,
html,
#allmap{
width: 100%;
height: 600px;
overflow: hidden;
margin: 0;
font-family: "Arial Black";
}
</style>
https://blog.csdn.net/qq_38233650/article/details/88533144
//在index.html引入一下
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=0MA953dkYQM4fQriWe6NaII8QpjeCCZh"></script>
<!--加载鼠标绘制工具-->
<script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
<link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
<template>
<div id="allmap" style="overflow:hidden;zoom:1;position:relative;">
<div id="map" style="height:500px;-webkit-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;"></div>
</div>
<div id="result">
<input type="button" value="获取绘制的覆盖物个数" @click="getAlert()" />
<input type="button" value="清除所有覆盖物" @click="clearAll()" />
</div>
</template>
<scripte>
export default{
data(){
return{
poi:null,
map:null,
path:null,
drawingManager:null,
overlays:[],
styleOptions = {
strokeColor: "red", //边线颜色。
fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 3, //边线的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
strokeStyle: 'solid' //边线的样式,solid或dashed。
}
}
},
created(){
this.map = new BMap.Map('map');
this.poi = new BMap.Point(116.307852, 40.057031);
this.map.centerAndZoom(poi, 16); //设置中心点坐标和地图级别
this.map.enableScrollWheelZoom(); //启用鼠标滚动对地图放大缩小
//实例化鼠标绘制工具
var drawingManager = new BMapLib.DrawingManager(map, {
isOpen: false, //是否开启绘制模式
enableDrawingTool: true, //是否显示工具栏
drawingMode: BMAP_DRAWING_POLYGON, //绘制模式 多边形
drawingToolOptions: {
anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
offset: new BMap.Size(5, 5), //偏离值
drawingModes: [
BMAP_DRAWING_POLYGON,
BMAP_DRAWING_CIRCLE,
BMAP_DRAWING_RECTANGLE
]
},
polygonOptions: styleOptions //多边形的样式
});
drawingManager.addEventListener('overlaycomplete', this.overlaycomplete);
},
methods:{
overlaycomplete(e){
this.overlays.push(e.overlay);
if(this.overlays.length>1){
alert("只能绘制一个区域!!!")
}
this.path = e.overlay.getPath(); //Array<Point> 返回多边型的点数组
console.log(path)
for (var i = 0; i < this.path.length; i++) {
console.log("lng:" + this.path[i].lng + "\n lat:" + this.path[i].lat);
}
},
clearAll(){
for (var i = 0; i < this.overlays.length; i++) {
this.map.removeOverlay(overlays[i]);
}
this.overlays.length = 0
},
getAlert(){
alert(this.overlays.length)
}
}
}
</script>
首先你得会vue的基本语法和用法,要不然别人帮你改了,后面如果出了问题,还得你自己调整,所以还是自己来靠谱