vue-amap 坐标定位-多个

<el-amap vid="amapDemo" :zoom="zoom" :center="center" class="amap-demo">
    <el-amap-marker v-for="(marker, index) in markers" :position="marker.position" :events="marker.events" :visible="marker.visible" :draggable="marker.draggable" :vid="index"></el-amap-marker>
</el-amap>
markers: [
  {
    position: [121.5273285, 31.21515044],
    events: {
      click: () => {
        alert('click marker');
      },
      dragend: (e) => {
        console.log('---event---: dragend')
        this.markers[0].position = [e.lnglat.lng, e.lnglat.lat];
      }
    },
    visible: true,
    draggable: false,
    template: '<span>1</span>',
  }
],
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 vue-amap 实现的地图功能的代码示例: ```html <template> <div> <amap :zoom="zoom" :center="center" :plugins="plugins" :events="events"> <amap-tool-bar :offset="offset"></amap-tool-bar> <amap-scale :offset="offset"></amap-scale> <amap-overview :offset="offset"></amap-overview> <amap-control-bar :position="position"></amap-control-bar> <amap-circle :center="[lng, lat]" :radius="radius" :options="circleOptions"></amap-circle> <amap-polygon v-for="polygon in polygons" :key="polygon.id" :path="polygon.path" :options="polygonOptions" @click="showPolygonInfo(polygon)"></amap-polygon> <amap-marker v-for="marker in markers" :key="marker.id" :position="marker.position" :options="markerOptions" @click="showMarkerInfo(marker)"></amap-marker> <amap-info-window v-if="selectedMarker" :position="selectedMarker.position" :isCustom="true"> <div class="info-window"> <h3>{{selectedMarker.title}}</h3> <p>{{selectedMarker.content}}</p> </div> </amap-info-window> <amap-info-window v-if="selectedPolygon" :position="selectedPolygon.center" :isCustom="true"> <div class="info-window"> <h3>{{selectedPolygon.name}}</h3> <p>面积:{{selectedPolygon.area.toFixed(2)}} 平方米</p> </div> </amap-info-window> <amap-mouse-tool :events="mouseToolEvents"></amap-mouse-tool> </amap> </div> </template> <script> import AMap from 'vue-amap' export default { name: 'Map', data() { return { zoom: 14, center: [121.4389, 31.2246], plugins: ['ToolBar', 'Scale', 'OverView', 'ControlBar'], position: 'RB', offset: [10, 10], lng: 121.4389, lat: 31.2246, radius: 100, circleOptions: { strokeColor: '#FF33FF', strokeWeight: 6, fillColor: '#1791fc', fillOpacity: 0.3 }, polygons: [ { id: 1, name: '区块1', path: [ [121.445, 31.228], [121.447, 31.226], [121.444, 31.224], [121.442, 31.226] ] }, { id: 2, name: '区块2', path: [ [121.444, 31.224], [121.446, 31.222], [121.443, 31.220], [121.441, 31.222] ] } ], polygonOptions: { strokeColor: '#FF33FF', strokeWeight: 6, fillColor: '#1791fc', fillOpacity: 0.3 }, markers: [ { id: 1, title: '标注1', content: '这是标注1的信息', position: [121.439, 31.225] }, { id: 2, title: '标注2', content: '这是标注2的信息', position: [121.441, 31.223] } ], markerOptions: { icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', offset: new AMap.Pixel(-13, -30), draggable: true }, selectedMarker: null, selectedPolygon: null, mouseToolEvents: { created: (tool) => { tool.on('draw', (e) => { if (e.obj.CLASS_NAME === 'AMap.Polygon') { const polygon = { id: new Date().getTime(), name: '', path: e.obj.getPath(), area: e.obj.getArea() } this.polygons.push(polygon) this.selectedPolygon = polygon tool.close(true) } }) } } } }, methods: { showMarkerInfo(marker) { this.selectedMarker = marker }, showPolygonInfo(polygon) { this.selectedPolygon = polygon } }, mounted() { AMap.initAMapApiLoader({ key: 'your amap key', plugin: ['AMap.MouseTool'], callback: () => { console.log('amap loaded') } }) } } </script> ``` 这个代码实现了以下功能: 1. 在地图上展示一个圆形和多个多边形和标注点; 2. 点击多边形或标注点,会在地图上显示对应的信息窗口; 3. 使用鼠标画多边形,会在地图上添加一个新的多边形,并计算出其面积。 需要注意的是,为了使代码正常运行,需要在代码中填写自己的高德地图开发者 key。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值