MapInput 地图选择器

一个地图选择器,从高德地图选地点,常用于搭配表单。

依赖高德地图插件:AMap AMap.PlaceSearch AMap.Autocomplete AMap.Geocoder高德地图 JSAPI 的加载open in new window

使用

value 支持 array string 两种类型,区别在于是否包含经纬度信息。

点击查看代码
<template>
  <div class="demo">
    <ElRow type="flex" style="margin-bottom:10px;">
      <ElCol :span="4">经纬度地址:</ElCol>
      <AgelMapInput v-model="lnglat" editable></AgelMapInput>
    </ElRow>
    <ElRow type="flex">
      <ElCol :span="4">纯文本地址:</ElCol>
      <AgelMapInput v-model="address" destroy-dialog-on-close></AgelMapInput>
    </ElRow>
  </div>
</template>

<script setup lang='ts'>
import { ref } from 'vue'

const lnglat = ref(["重庆市洪崖洞民俗风貌区", 106.579125, 29.562283])
const address = ref('重庆市洪崖洞民俗风貌区')
</script>

<style scoped>

</style>

TIP

不管是使用 JSAPI Loader 还是 CDN 方式,首先要确认 AMap 及对应的插件正确的被引用,组件默认是取 Window.AMap,若你想按需加载高德地图,可使用 AMap 属性。

若使用的是高德地图v.2.0,则需要把 AMap.Autocomplete 修改为 AMap.AutoComplete

<template>
  <AgelMapInput :AMap="mapLoader"></AgelMapInput>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader'
export default {
  methods: {
    mapLoader(reslove) {
      AMapLoader.load({
        key: 'xxxxxxxx', // map key
        plugins: ['AMap.PlaceSearch', 'AMap.Autocomplete', 'AMap.Geocoder'] // 所需要插件列表
      }).then((AMap) => reslove(AMap))
    }
  }
}
</script>

属性

属性类型默认值说明
valuearray / string[]绑定值
AMapfunction(cb)=> cb(Window.AMap)AMap Loader
keyword-searchbooleantrue是否可关键字检索
clearablebooleanfalse是否可清空
editablebooleanfalse是否可编辑
destroy-dialog-on-closebooleanfalsedialog 关闭时是否销毁
......--ElInput 属性open in new window
Last Updated:
Contributors: agrass, liujianfeng