Skip to content

useAddressGeocoder ^0.0.39

通过地址解析坐标点

ts
import { useAddressGeocoder } from 'vue3-baidu-map-gl'

单个地址解析

使用地址字符串作为 get 方法参数解析单个地址

TIP

在 Ts 中使用单个解析地址时,使用泛型 Point 内部可推断 point 为可推断为 Point,从而避免读取值时 ts 的报错。

ts
import { Point } from 'vue3-baidu-map-gl'
const { point } = useAddressGeocoder<Point>()

批量解析地址

使用地址字符串数组作为 get 方法参数批量解析地址

TIP

在 Ts 中使用批量解析地址时,使用泛型 Point[] 内部可推断 point 为可推断为 Point[],从而避免遍历时 ts 的报错。

ts
import { Point } from 'vue3-baidu-map-gl'
const { point: points } = useAddressGeocoder<Point[]>()

用法

ts
const { get, point, isLoading, isEmpty } = useAddressGeocoder(cal)

TIP

该 hooks 依赖于 BMapGL,所以需要在 Map 组件初始化完毕调用 get 方法后数据才可用

参数

参数描述类型默认值
cal定位成功后的回调函数(point: Ref<Point | Point[] | null | undefined>) => void-

返回值

返回值描述类型
isLoading是否在获取中boolean
isEmpty是否有解析结果。批量解析时,所有地址都未解析到正确坐标点,该值才为falseboolean
point地址解析出来的坐标点。批量解析地址时,point 为数组。Ref<Point | Point[] | null | undefined>
get获取地址到坐标点方法,需要在Map组件initd事件触发后才可调用;参数 address表示要解析的地址,可以传数组一次解析多个地址;city表示地址所属的城市(address: string | string[], city: string) => void

Point

ts
type Point = { lng: number; lat: number }

TS 类型定义参考

ts
import { Ref } from 'vue'
import { type Point } from 'vue3-baidu-map-gl'

export declare type AddressGeocoderResult = Point | Point[]
/**
 * 由地址解析坐标点
 */
export declare function useAddressGeocoder<T extends AddressGeocoderResult = AddressGeocoderResult>(
  cal?: (point: Ref<T>) => void
): {
  get: (address: T extends Point ? string : string[], city: string) => void
  point: Ref<T | null | undefined>
  isLoading: Ref<boolean>
  isEmpty: Ref<boolean>
}

Released under the MIT License.