MapInput 地图选择器
一个地图选择器,从高德地图选地点,常用于搭配表单。
依赖高德地图插件:AMap
AMap.PlaceSearch
AMap.Autocomplete
AMap.Geocoder
,高德地图 JSAPI 的加载。
使用
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>
属性
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
value | array / string | [] | 绑定值 |
AMap | function | (cb)=> cb(Window.AMap) | AMap Loader |
keyword-search | boolean | true | 是否可关键字检索 |
clearable | boolean | false | 是否可清空 |
editable | boolean | false | 是否可编辑 |
destroy-dialog-on-close | boolean | false | dialog 关闭时是否销毁 |
...... | - | - | ElInput 属性 |