amis2/docs/zh-CN/components/form/location-picker.md
2024-04-30 11:13:34 +08:00

8.6 KiB
Raw Blame History

title description type group menuName icon order
LocationPicker 地理位置 0 null LocationPicker 30

用于选择地理位置

基本用法

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "debug": true,
  "body": [
    {
      "type": "location-picker",
      "name": "location",
      "ak": "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",
      "label": "地址"
    }
  ]
}

注意其中的 ak 参数只能在 amis 官网示例中使用,请前往百度地图开放平台申请自己的 ak

高德地图(暂不支持)

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "debug": true,
  "body": [
    {
      "type": "location-picker",
      "name": "location",
      "vendor": "gaode",
      "ak": "8ae6a7549ce3f37f8e5aab9d445df8ad",
      "label": "地址"
    },
  ]
}

高德地图需要设置 vendorgaode,并且需要设置 ak。其中的 ak 参数为随机值, 请替换为自己申请的 ak 高德地图的 ak 申请地址:高德地图开放平台

请注意: 高德地图不支持坐标转换

属性表

当做选择器表单项使用时,除了支持 普通表单项属性表 中的配置以外,还支持下面一些配置

属性名 类型 默认值 说明
value LocationData 参考 LocationData
vendor 'baidu' | 'gaode' 'baidu' 地图厂商,目前只实现了百度地图和高德地图
ak string 百度/高德地图的 ak
clearable boolean false 输入框是否可清空
placeholder string '请选择位置' 默认提示
autoSelectCurrentLoc boolean false 是否自动选中当前地理位置
onlySelectCurrentLoc boolean false 是否限制只能选中当前地理位置,设置为 true 后,可用于充当定位组件
coordinatesType 'bd09' | 'gcj02' 'bd09' 坐标系类型,默认百度坐标,使用高德地图时应设置为'gcj02' 高德地图不支持坐标转换

坐标系说明

  • bd09百度坐标系在 GCJ02 坐标系基础上再次加密。
  • gcj02火星坐标系是由中国国家测绘局制定的地理坐标系统。

LocationData

属性值 类型 是否必填 说明
address string 地址信息
lng number 经度,范围:[-180, 180]
lat number 维度,范围:[-90, 90]
vendor 'baidu' | 'gaode' 地图厂商类型

事件表

当前组件会对外派发以下事件,可以通过onEvent来监听这些事件,并通过actions来配置执行的动作,在actions中可以通过${事件参数名}${event.data.[事件参数名]}来获取事件产生的数据,详细请查看事件动作

事件名称 事件参数 说明
change [name]: LocationData 组件的值 选中值变化时触发

change

{
    "type": "form",
    "debug": true,
    "body": [
      {
        "type": "location-picker",
        "name": "location",
        "ak": "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",
        "label": "地址",
        "onEvent": {
            "change": {
                "actions": [
                    {
                      "actionType": "toast",
                      "args": {
                          "msg": "${event.data.value|json}"
                      }
                    }
                ]
            }
        }
      }
    ]
  }

动作表

当前组件对外暴露以下特性动作,其他组件可以通过指定actionType: 动作名称componentId: 该组件id来触发这些动作,动作配置可以通过args: {动作配置项名称: xxx}来配置具体的参数,详细请查看事件动作

动作名称 动作配置 说明
clear - 清空
reset - 将值重置为初始值。6.3.0 及以下版本为resetValue
setValue value 参考 LocationData

clear

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "location-picker",
          "name": "location",
          "ak": "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",
          "label": "地址",
          "value": {
            "address":"北京市西城区府右街131号",
            "lat":39.916383659908185,
            "lng":116.38854914523102,
            "city":"北京市",
            "vendor":"baidu"
          },
          "id": "clear_text"
        },
        {
            "type": "button",
            "label": "清空",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "clear",
                            "componentId": "clear_text"
                        }
                    ]
                }
            }
        }
    ]
}

reset

如果配置了resetValue,则重置时使用resetValue的值,否则使用初始值。

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "location-picker",
          "name": "location",
          "ak": "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",
          "label": "地址",
          "value": {
            "address":"北京市西城区府右街131号",
            "lat":39.916383659908185,
            "lng":116.38854914523102,
            "city":"北京市",
            "vendor":"baidu"
          },
          "id": "reset_text"
        },
        {
            "type": "button",
            "label": "重置",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "reset",
                            "componentId": "reset_text"
                        }
                    ]
                }
            }
        }
    ]
}

setValue

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "location-picker",
          "name": "location",
          "ak": "LiZT5dVbGTsPI91tFGcOlSpe5FDehpf7",
          "label": "地址",
          "id": "setvalue_text"
        },
        {
            "type": "button",
            "label": "赋值",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "setValue",
                            "componentId": "setvalue_text",
                            "args": {
                                "value": {
                                  "address":"北京市西城区府右街131号",
                                  "lat":39.916383659908185,
                                  "lng":116.38854914523102,
                                  "city":"北京市",
                                  "vendor":"baidu"
                                }
                            }
                        }
                    ]
                }
            }
        }
    ]
}