vue-map高德地图(1)输入坐标显示位置(组件封装)

父组件使用

<location :location='location'  :locationSize='locationSize'/>
import Location from '@/components/location'
export default{
components:['Location']
 data() {
    return {
      location:[15.11,22.11],   //位置坐标
      locationSize:'width:100%;height:200px',  //地图大小显示设置
    };
  },
}

地图组件封装

<template>
  <div>
    <div id="map-location" :style="locationSize">
    </div>
  </div>
</template>
<script>
var map, marker;
export default {
  props:['locationSize','location'],  //接收父组件传来的位置坐标和样式
  data() {
    return {
      arriveCoor: this.location, //坐标点
      arrive: "", //位置信息
    };
  },
  mounted() {
    this.mapDraw(this.arriveCoor)
    this.mapCoor(this.arriveCoor);
  },
  methods: {
    mapDraw(arriveCoor) {
      map = new AMap.Map("map-location", {
        //map-location是嵌地图div的id
        resizeEnable: true, //是否监控地图容器尺寸变化
        zoom: 16, //初始化地图层级
        center: arriveCoor, //初始化地图中心点
      });
      // 定位点
      this.addMarker(arriveCoor);
    },
    // 实例化点标记
    addMarker(arriveCoor) {
      var _this = this;
      marker = new AMap.Marker({
        icon: "", 
        imageSize: "20px",
        position: arriveCoor,
        offset: new AMap.Pixel(-13, -30),
        // 设置是否可以拖拽
        draggable: true,
        cursor: "move",
        // 设置拖拽效果
        raiseOnDrag: true,
      });
      marker.setMap(map);
    }, // 查询坐标
    mapCoor(lnglatXY) {
      var _this = this;
      AMap.service("AMap.Geocoder", function () {
        var geocoder = new AMap.Geocoder({});
        geocoder.getAddress(lnglatXY, function (status, result) {
          if (status === "complete" && result.info === "OK") {
            _this.arrive = result.regeocode.formattedAddress;
          } else {
            _this.arrive = "暂无位置";
          }
        });
      });
    },
  },
};
</script>

 效果图:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuwenjie_

感谢打赏,问题留言~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值