[HarmonyOS Next示例代码]地图服务

MapKit_SampleCode_Demo-ArkTS: 本示例展示了使用地图服务提供的地图展示、移动地图、添加Marker/MapCircle/MapPolyline/MapPolygon、静态图、位置搜索、地点详情和选点高级控件的能力。

HarmonyOS next 示例代码全集

地图服务

介绍

本示例展示了使用地图服务提供的地图展示、移动地图、添加Marker/MapCircle/MapPolyline/MapPolygon、静态图、位置搜索、地点详情和选点高级控件的能力。

需要使用地图服务接口@hms.core.map.map.d.ts、@hms.core.map.mapCommon.d.ts、@hms.core.map.MapComponent.d.ets、@hms.core.map.sceneMap.d.ts、@hms.core.map.site.d.ts、@hms.core.map.staticMap.d.ts、@hms.core.map.navi.d.ts。

效果预览

应用首页基础功能页面移图效果展示1移图效果展示2

应用首页基础功能页面我的位置修改位置样式

应用首页覆盖物添加页面添加标记添加多边形

应用首页静态图添加页面获取静态图页面

应用首页高级控件页面地点详情页地图选点页

应用首页检索页面关键字查询结果逆地理查询结果

应用首页路径规划页面批量算路-驾车结果轨迹纠正结果

使用说明: 使用前请参考地图服务开发指南配置AppGallery Connect章节,开通地图权限。

  1. 在手机的主屏幕,点击”地图服务Demo“,启动应用,在主界面可见“MapController”、“Overlay”、“StaticMap”、“NaviDemo”、“AdvancedControls”按钮。
  2. 点击“MapController”按钮,可见地图展示页面,点击“moveCamera”按钮,可执行移动地图功能,每隔一段时间进行一次移图操作,并展示移图的位置和参数。
  3. 点击“MapController”按钮,可见地图展示页面,点击“setTrue”、“setMyLocation”、位置控件、“setMyLocationStyle”按钮,点击这4个按钮均可打开位置开关,并移动到我的位置,然后替换我的位置自定义图标。
  4. 点击“Overlay”按钮,可见地图展示页面,点击“MarkerSample”按钮,可以添加Marker覆盖物,然后每隔一段时间进行一次marker的属性设置;点击“PolygonSample”按钮,可以添加矩形覆盖物,然后每隔一段时间进行一次MapPolygon的属性设置。
  5. 点击“StaticMap”按钮,可见“getStaticMap”按钮,点击按钮,可以获取静态图图片。
  6. 点击“AdvancedControls”按钮,可见地图展示页面,点击“queryLocation”按钮,可以拉起地点详情控件页,点击“chooseLocation”按钮,可以拉起地图选点控件页;
  7. 点击“AdvancedControls”按钮,可见地图展示页面,点击“TextSearch”按钮,可以获取关键字搜索结果,点击“Geocode”按钮,可以获取逆地理搜索结果。
  8. 点击“NaviDemo”按钮,可见路径规划页面,点击“getDrivingMatrix”按钮,可以获取批量算路-驾车结果,点击“snapToRoads”按钮,可以获取路径纠正结果。

工程目录

├─entry/src/main/ets                    // 代码区域
│  ├─entryability                       
│  │   └─EntryAbility.ets               // 本地启动ability
│  └─pages                              // 代码目录
│     ├─AdvancedControlsDemo.ets        // 地点详情控件和地图选点控件
│     ├─Index.ets                       // 应用首页
│     ├─MapControllerDemo.ets           // 地图的主要功能入口
│     ├─NaviDemo.ets                    // 路径规划
│     ├─OverlayDemo.ets                 // 地图覆盖物
│     └─StaticMapDemo.ets               // 静态图
└─entry/src/main/resources              // 项目资源目录

具体实现

在@hms.core.map.mapCommon中定义了地图移动,我的位置,添加Marker,MapPolygon等接口API:

  • moveCamera(update: CameraUpdate): void;
  • getCameraPosition(): mapCommon.CameraPosition;
  • setMyLocationEnabled(myLocationEnabled: boolean): void;
  • setMyLocationControlsEnabled(enabled: boolean): void;
  • setMyLocation(location: geoLocationManager.Location): void;
  • setMyLocationStyle(style: mapCommon.MyLocationStyle): Promise;
  • addMarker(options: mapCommon.MarkerOptions): Promise;
  • addPolygon(options: mapCommon.MapPolygonOptions): Promise;
  • addCircle(options: mapCommon.MapCircleOptions): Promise;
  • addPolyline(options: mapCommon.MapPolylineOptions): Promise;

在@hms.core.map.staticMap定义了静态图获取API:

  • function getMapImage(options: StaticMapOptions): Promise<image.PixelMap>;

在@hms.core.map.sceneMap定义了高级控件API:

  • function queryLocation(context: common.UIAbilityContext, options: LocationQueryOptions): Promise;
  • function chooseLocation(context: common.UIAbilityContext, options: LocationChoosingOptions): Promise;

在@hms.core.map.site定义了搜索API:

  • function searchByText(searchByTextParams: SearchByTextParams): Promise;
  • function nearbySearch(nearbySearchParams: NearbySearchParams): Promise;
  • function queryAutoComplete(queryAutoCompleteParams: QueryAutoCompleteParams): Promise;
  • function searchById(searchByIdParams: SearchByIdParams): Promise;
  • function reverseGeocode(reverseGeocodeParams: ReverseGeocodeParams): Promise;

在@hms.core.map.navi定义了导航API:

  • function getDrivingRoutes(params: DrivingRouteParams): Promise;
  • function getWalkingRoutes(params: RouteParams): Promise;
  • function getCyclingRoutes(params: RouteParams): Promise;
  • function getDrivingMatrix(params: DrivingMatrixParams): Promise;
  • function getWalkingMatrix(params: MatrixParams): Promise;
  • function getCyclingMatrix(params: MatrixParams): Promise;
  • function snapToRoads(params: SnapToRoadsParams): Promise;

业务使用时,需要先进行import导入 import { MapComponent, mapCommon, map, sceneMap, site, staticMap, navi } from '@kit.MapKit';

相关权限

1.应用在前台运行时获取位置权限:ohos.permission.LOCATION。 2.应用获取设备模糊位置信息权限:ohos.permission.APPROXIMATELY_LOCATION。

依赖

依赖设备具备网络访问和位置获取能力。

约束与限制

1.设备类型:华为手机。 2.HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。 3.DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。 4.HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值