diff --git "a/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\346\216\245\345\217\243/\345\237\272\346\234\254\345\212\237\350\203\275/map.md" "b/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\346\216\245\345\217\243/\345\237\272\346\234\254\345\212\237\350\203\275/map.md" new file mode 100644 index 0000000000000000000000000000000000000000..04f10fdeaead8fc4dae23c20a41ffaa43b9173b4 --- /dev/null +++ "b/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\346\216\245\345\217\243/\345\237\272\346\234\254\345\212\237\350\203\275/map.md" @@ -0,0 +1,1286 @@ +# map(地图功能) + +## 导入模块 + +```typescript +import map from '@ohos.map'; +``` + +## setMyLocationEnabled + +setMyLocationEnabled(myLocationEnabled: boolean): void + +“我的位置”图层功能开关,默认使用系统的连续定位能力显示用户位置。开关打开后,“我的位置”按钮默认显示在地图的右下角。点击“我的位置”按钮,将会在屏幕中心显示当前定位,以蓝色圆点的形式呈现。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :---------------- | :------- | :--- | :----------------------------------------------------------- | +| myLocationEnabled | boolean | 是 | true:启用“我的位置”图层false:禁用“我的位置”图层默认值为false。 | + +**示例:** + +```typescript +map.setMyLocationEnabled(true); +``` + +## isMyLocationEnabled + +isMyLocationEnabled(): boolean + +获取“我的位置”图层的开启状态。 + +**返回值:** + +| 类型 | 说明 | +| :------ | :---------------------------------------------- | +| boolean | “我的位置”图层的开启状态。true:启用false:禁用 | + +**示例:** + +```typescript +let isMyLocationEnabled: boolean = map.isMyLocationEnabled(); +``` + +## setMyLocation + +setMyLocation(location: geoLocationManager.Location): void + +默认使用系统的连续定位能力显示用户位置,如果您希望定制显示频率或者精准度,可以调用此接口设置“我的位置”坐标。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :-------------- | :--- | :----------------------- | +| location | myCommon.LatLng | 是 | 用户的位置。具体坐标位置 | + +**示例:** + +```typescript +map.setMyLocation({ + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 +}); +``` + +## setZoomGesturesEnabled + +setZoomGesturesEnabled(enabled: boolean): void + +设置是否启用缩放手势。默认情况下,缩放手势处于启用状态。 + +- 启用状态,用户可以使用以下手势缩放相机: + 1. 单指双击可将缩放级别提高1(放大)层级,用双指单击可将缩放级别降低1(缩小)层级。 + 2. 双指张合,实现放大缩小。 + 3. 单指双击实现单指缩放,第二次点时按住,然后上划缩小,或下划放大。 +- 禁用状态,缩放手势无效。此设置不影响缩放按钮,也不限制通过接口移动相机和相机动画。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------- | :--- | :-------------------------------------------------- | +| enabled | boolean | 是 | true:启用缩放手势false:禁用缩放手势默认值为true。 | + +**示例:** + +```typescript +map.setZoomGesturesEnabled(true); +``` + +## isZoomGesturesEnabled + +isZoomGesturesEnabled(): boolean + +获取缩放手势功能的启用状态。 + +**返回值:** + +| 类型 | 说明 | +| :------ | :----------------------------------------------------------- | +| boolean | 缩放手势功能的启用状态。true:启用缩放手势false:禁用缩放手势 | + +**示例:** + +```typescript +let isZoomGesturesEnabled: boolean = map.isZoomGesturesEnabled(); +``` + +## setScrollGesturesEnabled + +setScrollGesturesEnabled(enabled: boolean): void + +设置是否启用滚动手势。默认情况下,滚动手势处于启用状态。 + +- 启用状态,用户可以通过滑动来平移相机。 +- 禁用状态,滑动无效。此设置不限制通过接口移动相机和相机动画。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------- | :--- | :-------------------------------------------------- | +| enabled | boolean | 是 | true:启用滚动手势false:禁用滚动手势默认值为true。 | + +**示例:** + +```typescript +map.setScrollGesturesEnabled(true); +``` + +## isScrollGesturesEnabled + +isScrollGesturesEnabled(): boolean + +获取滚动手势的启用状态。 + +**返回值:** + +| 类型 | 说明 | +| :------ | :-------------------------------------------------------- | +| boolean | 滚动手势的启用状态。true:启用滚动手势false:禁用滚动手势 | + +**示例:** + +```typescript +let isScrollGesturesEnabled: boolean = map.isScrollGesturesEnabled(); +``` + +## setAllGesturesEnabled + +setAllGesturesEnabled(enabled: boolean): void + +提供禁用所有手势的接口。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------- | :--- | :------------------------------------------ | +| enabled | boolean | 是 | true:启用手势false:禁用手势默认值为true。 | + +**示例:** + +```typescript +map.setAllGesturesEnabled(true); +``` + +## setCompassControlsEnabled + +setCompassControlsEnabled(enabled: boolean): void + +设置是否启用指南针。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------- | :--- | :---------------------------------------------- | +| enabled | boolean | 是 | true:启用指南针false:禁用指南针默认值为true。 | + +**示例:** + +```typescript +map.setCompassControlsEnabled(true); +``` + +## isCompassControlsEnabled + +isCompassControlsEnabled(): boolean + +获取指南针的启用状态。 + +**返回值:** + +| 类型 | 说明 | +| :------ | :-------------------------------------- | +| boolean | 指南针的启用状态。true:启用false:禁用 | + +**示例:** + +```typescript +let isCompassControlsEnabled: boolean = map.isCompassControlsEnabled(); +``` + +## addMarker + +addMarker(options: mapCommon.MarkerOptions): Marker + +在地图上添加一个标记。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :---------------------------------------- | :--- | :--------------- | +| options | [mapCommon.MarkerOptions](#MarkerOptions) | 是 | 标记的属性设置。 | + +**返回值:** + +| 类型 | 说明 | +| :---------------- | :------------------------------ | +| [Marker](#Marker) | 返回锚点对象[Marker](#Marker)。 | + +**示例:** + +```typescript +// Marker初始化参数 +let markerOptions: mapCommon.MarkerOptions = { + position: { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 + }, + anchorU: 0.5, + anchorV: 1, + icon: 'test.png' +}; +// 在地图上添加一个marker +let marker: map.Marker = map.addMarker(markerOptions); +``` + +## removeMarker + +removeMarker(marker:Marker):void; + +在地图上删除一个标记点 + +**参数:** + +| 参数名 | 类型 | 必填 | **说明** | +| :----- | ----------------- | ---- | :------- | +| marker | [Marker](#Marker) | 是 | 删除锚点 | + +**示例:** + +```typescript +map.removeMarker(marker); +``` + +## addPolyline + +addPolyline(options: mapCommon.MapPolylineOptions): MapPolyline + +在地图上添加一条折线。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :-------------------------------------------------- | :--- | :--------------- | +| options | [mapCommon.MapPolylineOptions](#MapPolylineOptions) | 是 | 折线的属性设置。 | + +**返回值:** + +| 类型 | 说明 | +| :-------------------------- | :-------------------------------- | +| [MapPolyline](#MapPolyline) | 返回[MapPolyline](#MapPolyline)。 | + +**示例:** + +```typescript +// 初始化参数 +let polylineOption: mapCommon.MapPolylineOptions = { + // 折线坐标点,必传 + points: [{ + latitude: 31.984410, + longitude: 118.7662537 + }, { + latitude: 31.084410, + longitude: 118.0662537 + }], + clickable: true, + color: 0xff000000, + startCap: mapCommon.CapStyle.BUTT, + endCap: mapCommon.CapStyle.BUTT, + geodesic: false, + jointType: mapCommon.JointType.DEFAULT, + visible: true, + width: 10, + zIndex: 0, + gradient: false +}; +// 在地图上添加一条折线 +let mapPolyline: map.MapPolyline = map.addPolyline(polylineOption); +``` + +## removePolyline + +removePolyline(mapPolyline:MapPolyline):void; + +在地图上删除一条折线 + +**参数:** + +| 参数名 | 类型 | 必填 | **说明** | +| :---------- | --------------------------- | ---- | :------- | +| mapPolyline | [MapPolyline](#MapPolyline) | 是 | 删除折线 | + +**示例:** + +```typescript +map.removePolyline(mapPolyline); +``` + +## getMapType + +getMapType(): mapCommon.MapType + +查询地图类型。 + +**返回值:** + +| **类型** | **说明** | +| :---------------------------- | :--------------- | +| [mapCommon.MapType](#MapType) | 查询地图的类型。 | + +**示例:** + +```typescript +let mapType = map.getMapType(); +``` + +## setMapType + +setMapType(mapType: mapCommon.MapType): void + +设置地图类型。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :---------------------------- | :--- | :--------- | +| mapType | [mapCommon.MapType](#MapType) | 是 | 地图类型。 | + +**示例:** + +```typescript +map.setMapType(mapCommon.MapType.TERRAIN); +``` + +## startTraceNavi + +startTraceNavi( + +options:mapCommon.TraceNaviOptions, + +polylineStyle?: mapCommon.PolylineStyle, + +onTrackPassPoint?: (index: number, point: mapCommon.Coord2d) => void, + +onTrajectoryYaw?: (distance: number) => void, + +onTrajectoryYawEnd?: () => void, + +onTrackNaviEvent?: (event: TrackNaviEvent) => void): void; + +启动循迹导航 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :----------------- | :---------------------------------------------------- | :--- | :------------------- | +| options | mapCommon.TraceNaviOptions | 是 | 循迹导航配置项 | +| polylineStyle | mapCommon.PolylineStyle | 否 | 轨迹样式 | +| onTrackPassPoint | Callback<{ index: number, point: mapCommon.Coord2d }> | 否 | 循迹导航走过点的回调 | +| onTrajectoryYaw | Callback | 否 | 偏航回调 | +| onTrajectoryYawEnd | Callback | 否 | 偏航结束回调 | +| onTrackNaviEvent | Callback | 否 | 导航事件回调 | + +**示例:** + +```typescript +import mapCommon from './@ohos.map.mapCommon'; +import map from './@ohos.map.map'; + +let options: mapCommon.TraceNaviOptions = { + routeType: mapCommon.RouteType.KMZ, + traceFilePath: 'xxx.kmz', + direction: 'forward', + guidanceMode: 'simple' +}; +// 实际由地图组件获取 +map.startTraceNavi(options); +``` + +## stopTraceNavi + +stopTraceNavi(): boolean; + +停止正在进行的循迹导航 + +**示例:** + +```typescript +map.stopTraceNavi(); +``` + +## updateRealPoint + +updateRealPoint(location: mapCommon.LatLng): boolean; + +更新导航实时位置 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :-------------------------- | :--- | :--------- | +| location | [mapCommon.LatLng](#LatLng) | 是 | 标注点列表 | + +**示例:** + +```typescript +map.updateRealPoint(mapCommon.LatLng); +``` + +## getEventManager + +getEventManager(): MapEventManager + +返回地图监听事件管理器。 + +**返回值:** + +| **类型** | **说明** | +| :---------------------------------- | :------------------- | +| [MapEventManager](#MapEventManager) | 地图监听事件管理器。 | + +**示例:** + +```typescript +let mapEventManager: map.MapEventManager = map.getEventManager(); +``` + +## MapPolylineMarker + +标记。在调用map.MapController类的[addMarker](#addMarker)方法时会返回该类型的实例。 + +| **返回类型** | **方法** | +| :-------------------------- | :---------------------------- | +| string | getId()获取覆盖物ID的属性 | +| string | getTitle()信息窗的标题 | +| string | getSnippet()信息窗的子标题 | +| [mapCommon.LatLng](#LatLng) | getPosition()标记点的经纬度 | +| number | getAltitude()标记点的海拔高度 | + +**示例:** + +```typescript +let markerOptions: mapCommon.MarkerOptions = { + position: { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 + } +}; +let marker: map.Marker = map.addMarker(markerOptions); +map.removeMarker(marker); +``` + +## map.converCoordinate + +convertCoordinate(fromType: mapCommon.CoordinateType, toType: mapCommon.CoordinateType, location: mapCommon.LatLng): mapCommon.LatLng + +坐标系转换。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------------------------------------ | :--- | :-------------------------------- | +| fromType | [mapCommon.CoordinateType](#CoordinateType) | 是 | 转换前坐标类型,当前仅支持WGS84。 | +| toType | [mapCommon.CoordinateType](#CoordinateType) | 是 | 转换后坐标类型,当前仅支持GCJ02。 | +| location | [mapCommon.LatLng](#LatLng) | 是 | 待转换坐标。 | + +**返回值:** + +| 类型 | 说明 | +| :---------------------------- | :--------------------- | +| <[mapCommon.LatLng](#LatLng)> | 转换后新坐标系的坐标值 | + +**示例:** + +```typescript +let wgs84Position: mapCommon.LatLng = { + latitude: 30, + longitude: 118, + type: mapCommon.CoordinateType.WGS84 +}; +let gcj02Position: mapCommon.LatLng = map.convertCoordinate(mapCommon.CoordinateType.WGS84, mapCommon.CoordinateType.GCJ02,wgs84Position); +``` + +## MapEventManager + +地图监听事件管理器。 + +### on('mapLoad') + +on(type: 'mapLoad', callback: Callback): void + +监听地图加载事件。支持传递多个callback异步回调。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------- | :--- | :------------------------------------------------- | +| type | string | 是 | 'mapLoad':监听地图加载事件。 | +| callback | Callback | 是 | 回调函数,无返回结果的回调函数,监听地图加载事件。 | + +**示例:** + +```typescript +let callback1 = () => { + console.info("mapLoad", `callback1`); +}; +let callback2 = () => { + console.info("mapLoad", `callback2`); +}; +let callback3 = () => { + console.info("mapLoad", `callback3`); +}; +mapEventManager.on("mapLoad", callback1); +mapEventManager.on("mapLoad", callback2); +mapEventManager.on("mapLoad", callback3); +``` + +### off('mapLoad') + +off(type: 'mapLoad', callback?: Callback): void + +取消监听地图加载事件。支持传递多个callback异步回调。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------- | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'mapLoad':监听地图加载事件。 | +| callback | Callback | 否 | 回调函数,无返回结果的回调函数,取消监听地图加载事件。callback为空:取消所有callback回调。callback非空:取消指定的callback回调。 | + +**示例:** + +```typescript +let callback1 = () => { + console.info("mapLoad", `callback1`); +}; +let callback2 = () => { + console.info("mapLoad", `callback2`); +}; +let callback3 = () => { + console.info("mapLoad", `callback3`); +}; +mapEventManager.on("mapLoad", callback1); +mapEventManager.on("mapLoad", callback2); +mapEventManager.on("mapLoad", callback3); + +// 只取消callback1对象的事件响应,当mapLoad事件发生时,callback2和callback3会正常被调用 +mapEventManager.off('mapLoad', callback1); +// 取消全部mapLoad事件响应 +mapEventManager.off('mapLoad'); +``` + +### on('myLocationClick') + +on(type: 'myLocationClick', callback: Callback): void + +监听“我的位置”点击事件。支持传递多个callback异步回调。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------------------------------ | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'myLocationClick':监听“我的位置”点击事件。 | +| callback | Callback<[mapCommon.LatLng](#LatLng)> | 是 | 回调函数,返回[mapCommon.LatLng](#LatLng),监听“我的位置”点击事件。 | + +**示例:** + +```typescript +let callback1 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback1 position = ${position.longitude}`); +}; +let callback2 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback2 position = ${position.longitude}`); +}; +let callback3 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback3 position = ${position.longitude}`); +}; +mapEventManager.on("myLocationClick", callback1); +mapEventManager.on("myLocationClick", callback2); +mapEventManager.on("myLocationClick", callback3); +``` + +### off('myLocationClick') + +off(type: 'myLocationClick', callback?: Callback): void + +取消监听“我的位置”点击事件。支持传递多个callback异步回调。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------------------------------ | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'myLocationClick':监听“我的位置”点击事件。 | +| callback | Callback<[mapCommon.LatLng](#LatLng)> | 否 | 回调函数,返回[mapCommon.LatLng](#LatLng),取消监听“我的位置”点击事件。callback为空:取消所有callback回调。callback非空:取消指定的callback回调。 | + +**示例:** + +```typescript +let callback1 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback1 position`); +}; +let callback2 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback2 position`); +}; +let callback3 = (position: mapCommon.LatLng) => { + console.info("myLocationClick", `callback3 position`); +}; +mapEventManager.on("myLocationClick", callback1); +mapEventManager.on("myLocationClick", callback2); +mapEventManager.on("myLocationClick", callback3); + +// 只取消callback1对象的事件响应,当myLocationClick事件发生时,callback2和callback3会正常被调用 +mapEventManager.off('myLocationClick', callback1); +// 取消全部myLocationClick事件响应 +mapEventManager.off('myLocationClick'); +``` + +### on('error') + +on(type: 'error', callback: ErrorCallback): void + +监听异常事件。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------------------------ | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'error':监听异常事件。 | +| callback | [ErrorCallback](#ErrorCallback) | 是 | 回调函数,返回[ErrorCallback](#ErrorCallback),监听异常事件。 | + +**示例:** + +```typescript +import { BusinessError } from '@ohos.base'; + +let callback1 = (error: BusinessError) => { + console.info("error", `callback1 code: ${error.code}, message: ${error.message}`); +}; +let callback2 = (error: BusinessError) => { + console.info("error", `callback2 code: ${error.code}, message: ${error.message}`); +}; +let callback3 = (error: BusinessError) => { + console.info("error", `callback3 code: ${error.code}, message: ${error.message}`); +}; +mapEventManager.on("error", callback1); +mapEventManager.on("error", callback2); +mapEventManager.on("error", callback3); +``` + +### off('error') + +off(type: 'error', callback?: ErrorCallback): void + +取消监听异常事件。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :------------------------------ | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'error':监听异常事件。 | +| callback | [ErrorCallback](#errorcallback) | 否 | 回调函数,返回[ErrorCallback](#errorcallback),取消监听异常事件。callback为空:取消所有callback回调。callback非空:取消指定的callback回调。 | + +**示例:** + +```typescript +import { BusinessError } from '@kit.BasicServicesKit'; + +let callback1 = (error: BusinessError) => { + console.info("error", `callback1`); +}; +let callback2 = (error: BusinessError) => { + console.info("error", `callback2`); +}; +let callback3 = (error: BusinessError) => { + console.info("error", `callback3`); +}; +mapEventManager.on("error", callback1); +mapEventManager.on("error", callback2); +mapEventManager.on("error", callback3); + +// 只取消callback1对象的事件响应,当error事件发生时,callback2和callback3会正常被调用 +mapEventManager.off('error', callback1); +// 取消全部error事件响应 +mapEventManager.off('error'); +``` + +### on('traceNavi') + +on(type:'traceNavi', callback: Callback): void; + +注册循迹导航事件监听,以支持语音播报。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :----------------------------------------------------------- | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'traceNavi': 监听“循迹导航”关键事件 | +| callback | Callback<[mapCommon.TraceNaviaEventData](#TraceNaviaEventData)> | 是 | 回调函数,返回[mapCommon.TraceNaviaEventData](#TraceNaviaEventData),取消监听“我的位置”点击事件。
callback为空:取消所有callback回调。
callback非空:取消指定的callback回调。 | + +**示例:** + +```typescript +let callback: Callback = (data) => { + console.log('event:' + data.event + 'deviation:' + data.deviation); +}; +mapEventManager.on("traceNavi", callback); + +// 只取消callback对象的事件响应 +mapEventManager.off("error", callback); +// 取消全部循迹导航事件响应 +mapEventManager.off("error"); +``` + +### off('traceNavi') + +off(type:'traceNavi', callback: Callback): void; + +取消循迹导航事件监听 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :----------------------------------------------------------- | :--- | :----------------------------------------------------------- | +| type | string | 是 | 'traceNavi': 监听“循迹导航”关键事件 | +| callback | Callback<[mapCommon.TraceNaviaEventData](#TraceNaviaEventData)> | 是 | 回调函数,返回[mapCommon.TraceNaviaEventData](#TraceNaviaEventData),取消监听“我的位置”点击事件。
callback为空:取消所有callback回调。
callback非空:取消指定的callback回调。 | + +**示例:** + +```typescript +let callback: Callback = (data) => { + console.log('event:' + data.event + 'deviation:' + data.deviation); +}; +mapEventManager.on("traceNavi", callback); + +// 只取消callback对象的事件响应 +mapEventManager.off("error", callback); +// 取消全部循迹导航事件响应 +mapEventManager.off("error"); +``` + +# navi(路径规划) + +## 导入模块 + +```js +import map from '@ohos.map'; +``` + +## getWalkingRoutes + +getWalkingRoutes(params: RouteParams, callback: AsyncCallback<[RouteResult](#RouteResult)>): void + +规划两个地点之间的步行路线。 + +说明: + +只能规划直线距离150公里内的两个地点步行路线。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :----------------------------------------- | :--- | :------------------- | +| params | [RouteParams](#RouteParams) | 是 | 步行路径规划的参数。 | +| callback | AsyncCallback<[RouteResult](#RouteResult)> | 是 | 回调函数。 | + +**示例:** + +```typescript +let params: map.RouteParams = { + origins: [ + { "latitude": 39.992281, "longitude": 116.31088 }, + { "latitude": 39.996, "longitude": 116.311 } + ], + destination: { + "latitude": 39.94, + "longitude": 116.311 + }, + language: "zh_CN" +}; +map.getWalkingRoutes(params,(res) => { + console.info("Succeeded in getting walking routes."); +}); +``` + +## getCyclingRoutes + +getCyclingRoutes(params: RouteParams, callback: AsyncCallback<[RouteResult](#RouteResult)>): void + +规划两个地点之间的骑行路线。 + +说明: + +只能在直线距离500公里内规划骑行路线。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :--------- | :----------------------------------------- | :--- | :------------------- | +| params | [RouteParams](#RouteParams) | 是 | 骑行路径规划的参数。 | +| callback | AsyncCallback<[RouteResult](#RouteResult)> | 是 | 回调函数。 | + +**示例:** + +```typescript +let params: map.RouteParams = { + origins: [{ + latitude: 31.984410259206815, + longitude: 118.76625379397866 + }], + destination: { + latitude: 30.9844259206815, + longitude: 119.766259397866 + }, + language: "zh_CN" +}; +map.getCyclingRoutes(params,(res) => { + console.info("Succeeded in getting cycling routes."); +}); +``` + +## RouteCoordinate + +路线规划属性。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :-------- | :------- | :--- | :--- | :----------------------------------------------------------- | +| matchType | number | 否 | 是 | 起终点绑路类型。取值包括0、1、3,默认值为0。0:限制绑路。起点避免绑定封闭、施工、限行、偏好设置所避免的道路,终点避免绑定高速、轮渡、 偏好设置所避免的道路。1:无限制绑路,不考虑道路本身限制。3:轨迹绑路,通过origins字段输入连续轨迹点的经纬度进行无限制绑路,只支持起点。 | +| latitude | number | 否 | 否 | 纬度,取值范围:[-90, 90] 。 | +| longitude | number | 否 | 否 | 经度,取值范围:[-180, 180) 。 | +| accuracy | number | 否 | 是 | GPS定位精度,单位:米。无默认值。 | +| altitude | number | 否 | 是 | 海拔高度,单位:米。无默认值。 | +| bearing | number | 否 | 是 | 偏转角度。无默认值。以正北方向为0度、顺时针方向为正的角度,默认值为0,取值范围:[0, 360)。超出取值范围的值会换算成取值范围内的值,比如361会被换算成1,-1换算为359。 | +| speed | number | 否 | 是 | 当前行驶速度,单位:米/秒。无默认值。 | +| timestamp | number | 否 | 是 | 当前定位生成时间的时间戳。无默认值。 | + +## RouteParams + +步行、骑行路径规划参数接口。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :---------- | :----------------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| origins | Array<[RouteCoordinate](#RouteCoordinate)> | 否 | 否 | 道路绑定的起点坐标列表,最后一个坐标是真正的出发地。坐标点的数量不能超过31个,相邻两个点之间的距离应大于1米。 | +| destination | [RouteCoordinate](#RouteCoordinate) | 否 | 否 | 目的地。 | +| language | string | 否 | 是 | 文字指引/描述的语种。目前只支持中文zh_CN和英文en。如果不传,返回地点的当地语言。 | +| avoids | Array | 否 | 是 | 表示计算出的路径应避免所指示的特性。取值包括:0:速度快1:避免收费2:避免高速4:距离短8:避免轮渡16:躲避拥堵32:大路优先64:智能路线128:高速优先256:少收费512:速度流畅默认值为0。步行和骑行仅支持两种策略:0和8。目前设置项16、32、128和256仅在中国大陆的路线规划中支持,后续将在其他国家和地区陆续支持这些设置项。说明以上为单独策略,组合策略仅支持1和8:避免收费+避免轮渡。 | +| extension | number | 否 | 是 | 额外信息。包括:0:基础路况信息1:新增路况信息默认值为0。 | + +## RouteResult + +路径规划的结果。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :--------------------- | :--- | :--- | :--------------------------------------------------- | +| routes | Array<[Route](#Route)> | 否 | 否 | 从起点到目的地的规划路径。如果没有结果,返回空数组。 | + +## Route + +从起点到目的地的规划路径。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :---------------------------- | :----------------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| steps | Array<[RouteStep](#RouteStep)> | 否 | 否 | 路线规划信息。 | +| overviewPolyline | Array<[mapCommon.LatLng](##LatLng)> | 否 | 是 | 表示该路线的编码后的折线经纬度。 | +| optimizedWaypoints | Array | 否 | 是 | 当isViaType = false且optimize = true 时才会有结果,表示进行路径优化之后途经点的索引。 | +| bounds | Array<[CoordinateBound](#CoordinateBound)> | 否 | 是 | 路线边界范围。 | +| trafficLightCount | number | 否 | 是 | 红绿灯个数。 | +| isDestinationInRestrictedArea | boolean | 否 | 是 | 终点是否在限制区域。true:在限制区域false:不在限制区域 | +| isDestinationInDiffTimeZone | boolean | 否 | 是 | 目的地是否在不同时区。true:在不同时区false:在相同时区 | +| isCrossCountry | boolean | 否 | 是 | 是否穿越国境线。true:穿越国境线false:不穿越国境线 | +| isCrossMultiCountries | boolean | 否 | 是 | 是否穿越多条国境线。true:穿越多条国境线false:不穿越多条国境线 | +| hasRestrictedRoad | boolean | 否 | 是 | 此路段是否包含私家/限制用途。true:包含私家/限制用途false:不包含私家/限制用途 | +| hasRoughRoad | boolean | 否 | 是 | 此路段是否经过崎岖道路。true:经过崎岖道路false:不经过崎岖道路 | +| hasFerry | boolean | 否 | 是 | 是否途径轮渡。true:途径轮渡false:不途径轮渡 | +| hasTolls | boolean | 否 | 是 | 此路段是否含收费站。true:含收费站false:不含收费站 | +| hasStairs | boolean | 否 | 是 | 此路段是否含有阶梯。true:含有阶梯false:不含有阶梯 | + +## RouteStep + +路段规划信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :--------------------------- | :----------------------------- | :--- | :--- | :--------------------------------------------------- | +| roads | Array<[RouteRoad](#RouteRoad)> | 否 | 否 | 路线分段信息。 | +| startLocation | [mapCommon.LatLng](##LatLng) | 否 | 否 | 出发地的经纬度。 | +| startAddress | string | 否 | 是 | startLocation对应的地址详情。 | +| endLocation | [mapCommon.LatLng](#LatLng) | 否 | 否 | 目的地的经纬度。 | +| endAddress | string | 否 | 是 | endLocation对应的地址详情。 | +| viaWaypoints | Array<[Waypoint](#Waypoint)> | 否 | 是 | 途经点信息。 | +| distance | number | 否 | 是 | 行驶/步行/骑行距离,单位:米。 | +| distanceDescription | string | 否 | 是 | distance的文本描述。 | +| duration | number | 否 | 是 | 行驶/步行/骑行时长,单位:秒。 | +| durationDescription | string | 否 | 是 | duration的文本描述。 | +| durationInTraffic | number | 否 | 是 | 基于实时路况计算出来的行驶/步行/骑行时长,单位:秒。 | +| durationInTrafficDescription | string | 否 | 是 | durationInTraffic的文本描述。 | + +## RouteRoad + +路线分段信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------------ | :--------------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| startLocation | [mapCommon.LatLng](#LatLng) | 否 | 否 | 出发地的经纬度。 | +| endLocation | [mapCommon.LatLng](#LatLng) | 否 | 否 | 目的地的经纬度。 | +| polyline | Array<[mapCommon.LatLng](#LatLng)> | 否 | 否 | 此路段的一系列坐标点(包含起点和终点坐标)。 | +| distance | number | 否 | 否 | 行驶/步行/骑行距离,单位:米。 | +| distanceDescription | string | 否 | 是 | distance的文本描述。 | +| duration | number | 否 | 否 | 行驶/步行/骑行时长,单位:秒。 | +| durationDescription | string | 否 | 是 | duration的文本描述。 | +| roadName | string | 否 | 是 | 路名。 | +| action | string | 否 | 是 | 当前步骤要执行的操作。取值包括:turn_slight_left:向左微转turn_sharp_left:向左急转turn_left:左转turn_slight_right:向右微转turn_sharp_right:向右急转turn_right:右转straight:直行end:终点waypoint:途经点 | +| orientation | number | 否 | 是 | 道路方向。取值包括:0:双向1:正向2:反向 | +| instruction | string | 否 | 是 | 文字指引。 | +| trafficSegments | Array<[TrafficSegment](#TrafficSegment)> | 否 | 是 | 路况信息。 | + +## CoordinateBound + +路线边界范围。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :-------- | :-------------------------- | :--- | :--- | :------------- | +| northeast | [mapCommon.LatLng](#LatLng) | 否 | 否 | 东北角的位置。 | +| southwest | [mapCommon.LatLng](#LatLng) | 否 | 否 | 西南角的位置。 | + +## Waypoint + +途经点信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :-------- | :-------------------------- | :--- | :--- | :-------------------------- | +| location | [mapCommon.LatLng](#LatLng) | 否 | 否 | 途经点的经纬度。 | +| stepIndex | number | 否 | 否 | 途经点在roads数组里的索引。 | + +## TrafficSegment + +路况信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :--------------------------------- | :--- | :--- | :---------------------------------------------------------- | +| distance | number | 否 | 否 | 行驶/步行/骑行距离,单位:米。 | +| status | number | 否 | 否 | 路况状态。取值包括:0:未知1:畅通2:缓行3:拥堵4:严重拥堵 | +| polyline | Array<[mapCommon.LatLng](#LatLng)> | 否 | 否 | 路段的形状坐标。 | + +## SnapToRoadsParams + +轨迹绑路的参数。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :--------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| points | Array<[mapCommon.LatLng](#LatLng)> | 否 | 否 | 道路贴合点集合,集合个数取值范围:[1,100],且相邻两个点距离需小于等于500米。 | + +## SnapToRoadsResult + +轨迹绑路的结果。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------ | :----------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| responseTime | number | 否 | 否 | 耗时,单位:毫秒。 | +| snappedPoints | Array<[SnappedPoint](#SnappedPoint)> | 否 | 否 | 道路上的坐标点。坐标点的数量不能超过100个,并且两个相邻点之间的距离不能超过500米。 | + +## SnappedPoint + +道路吸附点。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :-------- | :------- | :--- | :--- | :------- | +| latitude | number | 否 | 否 | 纬度 。 | +| longitude | number | 否 | 否 | 经度 。 | +| roadId | string | 否 | 否 | 道路ID。 | + +# POI搜索 + +本模块提供地点搜索服务。 + +## 导入模块 + +```typescript +import map from '@ohos.map'; +``` + +## searchByText + +searchByText(searchByTextParams: SearchByTextParams, callback: AsyncCallback<[SearchByTextResult](#SearchByTextResult)>): void + +通过指定的关键字和可选的地理范围,查询诸如旅游景点、企业和学校之类的地点。 + +**参数:** + +| **参数名** | **类型** | 必填 | **说明** | +| :----------------- | :------------------------------------------------------- | :--- | :----------------- | +| searchByTextParams | [SearchByTextParams](#SearchByTextParams) | 是 | 关键字搜索的参数。 | +| callback | AsyncCallback<[SearchByTextResult](#SearchByTextResult)> | 是 | 回调函数。 | + +**示例:** + +```typescript +let params: map.SearchByTextParams = { + query: "Piazzale Dante, 41, 55049 Viareggio, Tuscany, Italy", + location: { + latitude: 31.984410259206815, + longitude: 118.76625379397866 + }, + radius: 10000, + language: "en" +}; +map.searchByText(params,(res) => { + console.info("Succeeded in searching by text."); +}); +``` + +## SearchByTextParams + +SearchByTextParams定义了搜索关键字的参数。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :----------- | :-------------------------- | :--- | :--- | :----------------------------------------------------------- | +| query | string | 否 | 否 | 搜索关键字,例如“故宫”。参数的长度范围:[1, 512]。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 搜索结果的经纬度。 | +| radius | number | 否 | 是 | Location的搜索半径,单位:米。取值范围:[1, 50000],默认50000米。异常值返回错误码401。 | +| poiTypes | Array | 否 | 是 | 返回指定的华为分类体系的地点,取值范围参见[HwLocationType](#HwLocationType)。poiTypes最多传5个类型,默认null。 | +| countryCodes | Array | 否 | 是 | 在指定的国家内搜索,采用ISO 3166-1 alpha-2。最多传5个国家或地区码。 | +| cityId | string | 否 | 是 | 在指定的城市内搜索,参数的长度范围:[1, 32]。说明支持中国大陆和港澳的中文城市名。对中国大陆城市及港澳地区,支持传入3-4位数字cityCode或6位数字adminCode,参见[城市码及区划代码表](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-citycode)。支持传入16-18位数字cityId。 | +| isCityLimit | boolean | 否 | 是 | 搜索结果是否强限制在指定城市内,需配合cityId参数使用,默认false。true:强限制在指定城市内false:不强限制在指定城市内 | +| language | string | 否 | 是 | 返回结果的语言类型,参数的长度范围:[1, 16]。语种取值请参见[位置搜索支持语言](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-language#section1629711151663)列表。如果不传,默认返回地点的当地语言。异常值按默认值处理。 | +| pageSize | number | 否 | 是 | 每页返回的记录数。取值范围:[1, 20],默认值为20。 | +| pageIndex | number | 否 | 是 | 当前页数。取值范围:[1, 500],默认值为1。说明pageIndex * pageSize <= 500 | +| isChildren | boolean | 否 | 是 | 是否返回子节点,默认为false。true:如果有子节点信息,则返回子节点的全量信息false:不返回 | + +## SearchByTextResult + +关键字搜索的结果。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :--------- | :------------------- | :--- | :--- | :----------------------------------------- | +| totalCount | number | 否 | 否 | 如果查询成功,返回满足搜索条件的记录总数。 | +| sites | Array<[Site](#Site)> | 否 | 是 | 如果查询成功,返回搜索结果。 | + +## Site + +地点详情。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :--------------- | :------------------------------------ | :--- | :--- | :----------------------------------------------------------- | +| siteId | string | 否 | 否 | 地点的唯一主键。 | +| name | string | 否 | 是 | 地点名称。 | +| formatAddress | string | 否 | 是 | 格式化的地点详细地址。 | +| addressComponent | [AddressComponent](#AddressComponent) | 否 | 否 | 地址详细信息。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 地点的经纬度。 | +| viewport | [mapCommon.LatLngBounds]() | 否 | 是 | 地点的视口范围。说明自动补全不支持返回此字段。 | +| distance | number | 否 | 是 | 预测地点和传参location之间的直线距离,单位:米。说明目前仅关键字搜索和周边搜索支持返回此字段。 | +| poi | [Poi](#Poi) | 否 | 是 | 如果地点是POI类型,返回POI信息。 | +| utcOffset | number | 否 | 是 | 位置所在时区和UTC时区的差值,单位:分钟。说明自动补全不支持返回此字段。 | + +## AddressComponent + +地址详细信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------ | :---------------------------- | :--- | :--- | :----------------------------------------------------------- | +| countryCode | string | 否 | 是 | 国家/地区码。 | +| countryName | string | 否 | 是 | 国家名。 | +| adminLevel1 | string | 否 | 是 | 一级行政区。 | +| adminLevel2 | string | 否 | 是 | 二级行政区。 | +| adminLevel3 | string | 否 | 是 | 三级行政区。 | +| adminLevel4 | string | 否 | 是 | 四级行政区。 | +| adminLevel5 | string | 否 | 是 | 五级行政区。 | +| locality | string | 否 | 是 | 地区、区域。 | +| subLocality1 | string | 否 | 是 | 一级子区域。 | +| subLocality2 | string | 否 | 是 | 二级子区域。 | +| neighborhoods | Array | 否 | 是 | 街区、城区。 | +| adminCode | string | 否 | 是 | [行政区划码](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-citycode)。说明接口返回的行政区划码覆盖中国大陆及港澳地区,包括省份、城市、区/县、乡镇/街道等层级,文档附录中仅提供部分城市行政区划码示例。 | +| postalCode | string | 否 | 是 | 邮政编码。 | +| city | [City](#City) | 否 | 是 | 城市信息。 | +| streetNumber | [StreetNumber](#StreetNumber) | 否 | 是 | 街道号。 | + +## Poi + +POI信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :----------------- | :----------------------------- | :--- | :--- | :----------------------------------------------------------- | +| poiTypes | Array | 否 | 是 | 华为POI分类体系,取值范围请参见[HwLocationType]()。 | +| poiTypeIds | Array | 否 | 是 | 华为POI分类体系Id,预留字段,当前无使用场景。 | +| phone | string | 否 | 是 | 电话号码。 | +| internationalPhone | string | 否 | 是 | 国际电话号码。 | +| rating | number | 否 | 是 | 评分。 | +| websiteUrl | string | 否 | 是 | 网址。 | +| openingHours | [OpeningHours](#OpeningHours) | 否 | 是 | 营业时间。 | +| businessStatus | string | 否 | 是 | 营业状态,其中包括:OPEN_NOW:正在营业。CLOSE_NOW:已休息。CLOSED_TEMPORARILY:临时关闭。CLOSED_PERMANENTLY:永久关闭。STATUS_UNKNOWN:未知。说明仅地点详情接口返回。 | +| brand | string | 否 | 是 | 品牌名称。 | +| email | string | 否 | 是 | 邮箱地址。 | +| starRating | number | 否 | 是 | 星级评定。 | +| childNodes | Array<[ChildNode](#ChildNode)> | 否 | 是 | POI的子节点信息。 | +| icon | string | 否 | 是 | POI图标地址。 | +| description | string | 否 | 是 | 描述信息。 | +| abstractText | string | 否 | 是 | 摘要信息。 | +| comment | [Comment](#Comment) | 否 | 是 | POI的评论信息。 | + +## SearchByTextParams + +SearchByTextParams定义了搜索关键字的参数。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :----------- | :-------------------------- | :--- | :--- | :----------------------------------------------------------- | +| query | string | 否 | 否 | 搜索关键字,例如“故宫”。参数的长度范围:[1, 512]。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 搜索结果的经纬度。 | +| radius | number | 否 | 是 | Location的搜索半径,单位:米。取值范围:[1, 50000],默认50000米。异常值返回错误码401。 | +| poiTypes | Array | 否 | 是 | 返回指定的华为分类体系的地点,取值范围参见[HwLocationType]()。poiTypes最多传5个类型,默认null。 | +| countryCodes | Array | 否 | 是 | 在指定的国家内搜索,采用ISO 3166-1 alpha-2。最多传5个国家或地区码。 | +| cityId | string | 否 | 是 | 在指定的城市内搜索,参数的长度范围:[1, 32]。说明支持中国大陆和港澳的中文城市名。对中国大陆城市及港澳地区,支持传入3-4位数字cityCode或6位数字adminCode,参见[城市码及区划代码表](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-citycode)。支持传入16-18位数字cityId。 | +| isCityLimit | boolean | 否 | 是 | 搜索结果是否强限制在指定城市内,需配合cityId参数使用,默认false。true:强限制在指定城市内false:不强限制在指定城市内 | +| language | string | 否 | 是 | 返回结果的语言类型,参数的长度范围:[1, 16]。语种取值请参见[位置搜索支持语言](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-language#section1629711151663)列表。如果不传,默认返回地点的当地语言。异常值按默认值处理。 | +| pageSize | number | 否 | 是 | 每页返回的记录数。取值范围:[1, 20],默认值为20。 | +| pageIndex | number | 否 | 是 | 当前页数。取值范围:[1, 500],默认值为1。说明pageIndex * pageSize <= 500 | +| isChildren | boolean | 否 | 是 | 是否返回子节点,默认为false。true:如果有子节点信息,则返回子节点的全量信息false:不返回 | + +## SortRule + +结果排序规则。 + +| 名称 | 值 | 说明 | +| :-------- | :--- | :----------- | +| COMPOSITE | 0 | 综合排序。 | +| DISTANCE | 1 | 按距离排序。 | + +## SearchByTextParams + +SearchByTextParams定义了搜索关键字的参数。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :----------- | :-------------------------- | :--- | :--- | :----------------------------------------------------------- | +| query | string | 否 | 否 | 搜索关键字,例如“故宫”。参数的长度范围:[1, 512]。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 搜索结果的经纬度。 | +| radius | number | 否 | 是 | Location的搜索半径,单位:米。取值范围:[1, 50000],默认50000米。异常值返回错误码401。 | +| poiTypes | Array | 否 | 是 | 返回指定的华为分类体系的地点,取值范围参见[HwLocationType]()。poiTypes最多传5个类型,默认null。 | +| countryCodes | Array | 否 | 是 | 在指定的国家内搜索,采用ISO 3166-1 alpha-2。最多传5个国家或地区码。 | +| cityId | string | 否 | 是 | 在指定的城市内搜索,参数的长度范围:[1, 32]。说明支持中国大陆和港澳的中文城市名。对中国大陆城市及港澳地区,支持传入3-4位数字cityCode或6位数字adminCode,参见[城市码及区划代码表](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-citycode)。支持传入16-18位数字cityId。 | +| isCityLimit | boolean | 否 | 是 | 搜索结果是否强限制在指定城市内,需配合cityId参数使用,默认false。true:强限制在指定城市内false:不强限制在指定城市内 | +| language | string | 否 | 是 | 返回结果的语言类型,参数的长度范围:[1, 16]。语种取值请参见[位置搜索支持语言](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-language#section1629711151663)列表。如果不传,默认返回地点的当地语言。异常值按默认值处理。 | +| pageSize | number | 否 | 是 | 每页返回的记录数。取值范围:[1, 20],默认值为20。 | +| pageIndex | number | 否 | 是 | 当前页数。取值范围:[1, 500],默认值为1。说明pageIndex * pageSize <= 500 | +| isChildren | boolean | 否 | 是 | 是否返回子节点,默认为false。true:如果有子节点信息,则返回子节点的全量信息false:不返回 | + +## OpeningHours + +营业时间。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :----------------------- | :--- | :--- | :--------------------------- | +| texts | Array | 否 | 是 | 每个星期的开放时间段的描述。 | +| periods | Array<[Period](#Period)> | 否 | 是 | 开放时间段的详细说明。 | + +## City + +城市信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :------- | :--- | :--- | :--------- | +| cityCode | string | 否 | 是 | 城市码。 | +| cityId | string | 否 | 是 | 城市ID。 | +| cityName | string | 否 | 是 | 城市名称。 | + +## StreetNumber + +街道号。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------ | :-------------------------- | :--- | :--- | :------------------------------------------- | +| direction | string | 否 | 是 | 该输入点在街道的方向。 | +| distance | number | 否 | 是 | 地点和传参location之间的直线距离,单位:米。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 街道经纬度。 | +| streetNumber | string | 否 | 是 | 街道号。 | +| streetName | string | 否 | 是 | 街道名称。 | +| formatAddress | string | 否 | 是 | 格式化的街道地址。 | + +## ChildNode + +POI的子节点信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------ | :-------------------------- | :--- | :--- | :--------------------------------------------- | +| siteId | string | 否 | 是 | 位置ID。 | +| name | string | 否 | 是 | 地点名称。 | +| formatAddress | string | 否 | 是 | 格式化的地点详细地址。 | +| location | [mapCommon.LatLng](#LatLng) | 否 | 是 | 地点的经纬度。 | +| poiTypes | Array | 否 | 是 | 华为分类体系,取值范围参见[HwLocationType]()。 | + +## Comment + +POI的评论信息。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------ | :------- | :--- | :--- | :------- | +| averageRating | number | 否 | 是 | 平均分。 | +| total | number | 否 | 是 | 总数。 | + +## Period + +开放时间段的详细说明。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :------------------------ | :--- | :--- | :--------- | +| open | [TimeOfWeek](#TimeOfWeek) | 否 | 是 | 开放时间。 | +| close | [TimeOfWeek](#TimeOfWeek) | 否 | 是 | 关闭时间。 | + +## TimeOfWeek + +时间模型。 + +**参数:** + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :------- | :--- | :--- | :----------------------------------------------------------- | +| week | number | 否 | 是 | 0:星期日1:星期一2:星期二3:星期三4:星期四5:星期五6:星期六 | +| time | string | 否 | 是 | 24小时制时间,hhmm格式。 | \ No newline at end of file diff --git "a/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\347\273\204\344\273\266/\345\237\272\347\241\200\347\273\204\344\273\266/map.md" "b/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\347\273\204\344\273\266/\345\237\272\347\241\200\347\273\204\344\273\266/map.md" new file mode 100644 index 0000000000000000000000000000000000000000..72edb95198a5802bb25948541a8f151abbddd4f8 --- /dev/null +++ "b/\350\277\220\345\212\250\350\241\250\345\272\224\347\224\250\345\274\200\345\217\221/\347\273\204\344\273\266/\345\237\272\347\241\200\347\273\204\344\273\266/map.md" @@ -0,0 +1,231 @@ +# map(地图组件) + +地图组件,用来渲染展示地图,通过回调获取MapComponentController对象,操作地图。 + +## 子组件 + +不支持。 + +## 属性 + +| 名称 | 类型 | 必填 | 描述 | +| ---------- | ----------------------------------- | ---- | ------------------------------------------------------------ | +| mapOptions | [mapCommon.MapOptions](#MapOptions) | 是 | 地图初始化参数。 | +| id | string | 否 | 组件的唯一标识。 | +| style | string | 否 | 组件的样式声明。 | +| class | string | 否 | 组件的样式类,用于引用样式表。 | +| ref | string | 否 | 用来指定指向子元素的引用信息,该引用将注册到父组件的$refs 属性对象上。 | + +## 事件 + +无,由MapComponentController对象负责交互 + +## 样式 + +| 名称 | 类型 | 默认值 | 必填 | 描述 | +| ---------------------------------- | -------------------------- | ------ | ---- | ------------------------------------------------------------ | +| width | \| 5+ | - | 否 | 设置组件自身的宽度。 未设置时组件宽度默认为0。 | +| height | \| 5+ | - | 否 | 设置组件自身的高度。 未设置时组件高度默认为0。 | +| padding | | 0 | 否 | 使用简写属性设置所有的内边距属性。 该属性可以有1到4个值: - 指定一个值时,该值指定四个边的内边距。 - 指定两个值时,第一个值指定上下两边的内边距,第二个指定左右两边的内边距。 - 指定三个值时,第一个指定上边的内边距,第二个指定左右两边的内边距,第三个指定下边的内边距。 - 指定四个值时分别为上、右、下、左边的内边距(顺时针顺序)。 | +| padding-[left\|top\|right\|bottom] | | 0 | 否 | 设置左、上、右、下内边距属性。 | +| margin | \| 5+ | 0 | 否 | 使用简写属性设置所有的外边距属性,该属性可以有1到4个值。 - 只有一个值时,这个值会被指定给全部的四个边。 - 两个值时,第一个值被匹配给上和下,第二个值被匹配给左和右。 - 三个值时,第一个值被匹配给上, 第二个值被匹配给左和右,第三个值被匹配给下。 - 四个值时,会依次按上、右、下、左的顺序匹配 (即顺时针顺序)。 | +| margin-[left\|top\|right\|bottom] | \| 5+ | 0 | 否 | 设置左、上、右、下外边距属性。 | +| border-width | | 0 | 否 | 使用简写属性设置元素的所有边框宽度。 | +| border-radius | | - | 否 | border-radius属性是设置元素的外边框圆角半径。 | +| background-color | | - | 否 | 设置背景颜色。 | +| display | string | flex | 否 | 确定一个元素所产生的框的类型,可选值为: - flex:弹性布局。 - none:不渲染此元素。 | +| [left\|top] | \| 6+ | - | 否 | left\|top确定元素的偏移位置。 - left属性规定元素的左边缘。该属性定义了定位元素左外边距边界与其包含块左边界之间的偏移。 - top属性规定元素的顶部边缘。该属性定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。 | + +## 示例 + + + +``` + +
+ +
+``` + +``` + // xxx.js + export default { + data: { + title: "", + mapOptions: {}, + mapEventManager: {} + }, + onInit() { + this.mapOptions = { + position: { + target: { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.coordinateType.WGS84 + }, + zoom: 10 + } + }; + } + } +``` + +``` + /* xxx.css */ + .container { + width: 100%; + height: 100%; + justify-content: center; + align-items: center; + flex-direction: column; + } +``` + +# mapCommon(地图属性) + +本模块提供map组件相关属性设置接口。 + +## 导入模块 + +```typescript +import mapCommon from '@ohos.map.mapCommon'; +``` + +## MapOptions + +提供Map组件初始化的属性。 + +**参数**: + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------------------------ | :-------------------------------- | :--- | :--- | :----------------------------------------------------------- | +| mapType | [MapType](#MapType) | 否 | 是 | 地图类型,默认值为[MapType](#MapType).STANDARD,异常值按默认值处理。 | +| position | [CameraPosition](#CameraPosition) | 否 | 否 | 地图相机位置。 | +| scrollGesturesEnabled | boolean | 否 | 是 | 是否支持滑动手势,默认值为true,异常值按默认值处理。true:支持false:不支持 | +| myLocationControlsEnabled | boolean | 否 | 是 | 是否展示定位按钮,默认值为false,异常值按默认值处理。true:展示false:不展示 | +| compassControlsEnabled | boolean | 否 | 是 | 是否展示指南针控件,默认值为true,异常值按默认值处理。true:展示false:不展示 | +| padding | [Padding](#Padding) | 否 | 是 | 设置地图和边界的距离,默认值为{ left: 0 , top: 0 , right: 0 , bottom: 0 }。 | + +## MapType + +地图类型。 + +| 名称 | 值 | 说明 | +| :-------- | :--- | :------------------- | +| STANDARD | 0 | 标准地图。 | +| NONE | 1 | 空地图。 | +| TERRAIN | 2 | 地形图。 | +| SATELLITE | 3 | 卫星图,只支持国内。 | +| HYBRID | 4 | 混合地图。 | + +## LatLng + +经纬度对象。 + +**参数**: + +| 名称 | **类型** | 只读 | 可选 | **说明** | +| :-------- | :----------------------- | :--- | :--- | :----------------------------------------- | +| latitude | number | 否 | 否 | 纬度,取值范围:[-90, 90]。 | +| longitude | number | 否 | 否 | 经度,取值范围:[-180, 180)。 | +| type | mapCommon.CoordinateType | 否 | 否 | 坐标系统类型,参数mapCommon.CoordinateType | + +**示例:** + +```typescript +let position: mapCommon.LatLng = { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 +}; +``` + +## CameraPosition + +相机状态,包括位置、倾斜角、缩放级别等信息。 + +**参数**: + +| 名称 | **类型** | 只读 | 可选 | **说明** | +| :----- | :---------------- | :--- | :--- | :----------------------------------------------------- | +| target | [LatLng](#LatLng) | 否 | 否 | 地图中心位置的经纬度坐标。 | +| zoom | number | 否 | 否 | 屏幕中心附近的缩放级别,取值范围:[2, 20],默认值为2。 | + +**示例:** + +```typescript +let cameraPosition: mapCommon.CameraPosition = { + target: { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 + }, + zoom: 10 +}; +``` + +## MarkerOptions + +描述Marker属性,继承[BaseOverlayOptions](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-common#section7400647135116)。 + +**参数**: + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :---------------- | :--- | :--- | :----------------------------------------------------------- | +| position | [LatLng](#LatLng) | 否 | 否 | 标记的位置坐标。 | +| icon | string | 否 | 是 | 图标路径 | +| anchorU | number | 否 | 是 | 锚点的水平坐标,以图像宽度的比例,建议取值[0, 1],默认值为0.5,异常值按默认值处理。 | +| anchorV | number | 否 | 是 | 锚点的垂直坐标,以图像高度的比例,建议取值[0, 1],默认值为1,异常值按默认值处理。 | +| title | string | 否 | 是 | 信息窗口的标题,超长字串超出部分用省略号“...”表示。 | +| snippet | string | 否 | 是 | 信息窗口的子标题,超长字串超出部分用省略号“...”表示。 | +| altitude | number | 否 | 是 | 海拔高度,单位:米,默认值为0。 | + +**示例:** + +```typescript +let markerOptions: mapCommon.MarkerOptions = { + position: { + latitude: 39.9, + longitude: 116.4, + type: mapCommon.CoordinateType.WGS84 + }, + title: "xxx点", + anchorU: 0.5, + anchorV: 1, + icon: 'test.png', + snippet: "注意转向" + altitude: 100 +}; +``` + +## Padding + +设置地图和边界的距离的参数。 + +**参数**: + +| **名称** | **类型** | 只读 | 可选 | **说明** | +| :------- | :------- | :--- | :--- | :----------------------------------------------------------- | +| left | number | 否 | 是 | 在地图左侧增加的填充距离,单位:px,默认值为0,异常值按照默认值处理。 | +| top | number | 否 | 是 | 在地图顶部增加的填充距离,单位:px,默认值为0,异常值按照默认值处理。 | +| right | number | 否 | 是 | 在地图右侧增加的填充距离,单位:px,默认值为0,异常值按照默认值处理。 | +| bottom | number | 否 | 是 | 在地图底部增加的填充距离,单位:px,默认值为0,异常值按照默认值处理。 | + +**示例:** + +```typescript +// 初始化参数,左边距0,底边距50 +let padding: mapCommon.Padding = { + left: 0, + bottom: 50 +}; +``` + +## CoordinateType + +坐标系类型。 + +| 名称 | 值 | 说明 | +| :---- | :--- | :------------ | +| WGS84 | 0 | WGS84坐标系。 | +| GCJ02 | 1 | GCJ02坐标系。 | \ No newline at end of file