智能客服
你问我答,随时在线为你解决问题

























本模块提供Map组件,您需要提供mapOptions和回调,通过回调获取MapComponentController对象。
起始版本: 4.1.0(11)
- import { MapComponent } from '@kit.MapKit';
MapComponent提供map组件,通过回调获取MapComponentController对象。
装饰器类型: @Component
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Map.Core
起始版本: 4.1.0(11)
参数:
| 名称 | 类型 | 只读 | 可选 | 装饰器类型 | 说明 |
|---|---|---|---|---|---|
| mapOptions | mapCommon.MapOptions | 否 | 是 | NA | 地图初始化参数。 说明: 若未传递该参数,则地图无法创建。 |
| mapCallback | AsyncCallback<map.MapComponentController> | 否 | 是 | NA | 回调函数,当地图初始化成功,err为undefined,data为获取到的map.MapComponentController;否则为错误对象。 说明: 若未传递该参数,则地图无法创建。 |
| customInfoWindow | customInfoWindowCallback | 否 | 是 | @BuilderParam | 自定义信息窗,显示一个自定义样式的信息窗,可用于展示标记相关的详细信息。 |
示例:
- import { map, mapCommon, MapComponent, customInfoWindowCallback } from '@kit.MapKit';
- import { AsyncCallback } from '@kit.BasicServicesKit';
-
- @Entry
- @Component
- struct MarkerDemo {
- private mapOptions?: mapCommon.MapOptions;
- private mapController?: map.MapComponentController;
- private mapCallback?: AsyncCallback<map.MapComponentController>;
-
- aboutToAppear(): void {
- this.mapOptions = {
- position: {
- target: {
- latitude: 32.120750,
- longitude: 118.788765
- },
- zoom: 15
- }
- }
-
- this.mapCallback = async (err, mapController) => {
- if (!err) {
- this.mapController = mapController;
- let markerOptions: mapCommon.MarkerOptions = {
- position: {
- latitude: 32.120750,
- longitude: 118.788765
- },
- clickable: true,
- // 设置信息窗标题
- title: "自定义信息窗"
- };
- await this.mapController?.addMarker(markerOptions);
- }
- }
- }
-
- build() {
- Stack() {
- Column() {
- MapComponent({
- mapOptions: this.mapOptions,
- mapCallback: this.mapCallback,
- // 自定义信息窗
- customInfoWindow: this.customInfoWindow
- })
- .width('100%')
- .height('100%')
- }.width('100%')
- }.height('100%')
- }
-
- // 自定义信息窗BuilderParam
- @BuilderParam customInfoWindow: customInfoWindowCallback = this.customInfoWindowBuilder;
-
- // 自定义信息窗Builder
- @Builder
- customInfoWindowBuilder($$: map.MarkerDelegate) {
- if ($$.marker) {
- Text($$.marker.getTitle())
- .width("50%")
- .height(50)
- .backgroundColor(Color.Green)
- .textAlign(TextAlign.Center)
- .fontColor(Color.Black)
- .font({ size: 25, weight: 10, style: FontStyle.Italic })
- .border({
- width: 3,
- color: Color.Black,
- radius: 25,
- style: BorderStyle.Dashed
- })
- }
- }
- }
build(): void
MapComponent的默认构造函数,无法直接调用此方法。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本4.1.0(11)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Map.Core
起始版本: 4.1.0(11)
type customInfoWindowCallback = (markerDelegate: map.MarkerDelegate) => void
自定义信息窗回调。
模型约束: 此接口仅可在Stage模型下使用。
元服务API: 从版本5.0.0(12)开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Map.Core
起始版本: 5.0.0(12)
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| markerDelegate | map.MarkerDelegate | 是 | 用于表示代理对象的标记。 |
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功