index.uts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { AsyncCallback } from '@ohos.base'
  2. import { AuthService } from '@tencentmap/base'
  3. import { MapController, MapOptions } from '@tencentmap/map'
  4. import { buildTencentMap } from './builder.ets'
  5. interface TencentMapOptions {
  6. mapKey : string
  7. mapOptions : MapOptions
  8. onReady : AsyncCallback<MapController>
  9. }
  10. export class TencentMap {
  11. private mapController : MapController | null = null
  12. private params : TencentMapOptions = {
  13. mapKey: '',
  14. mapOptions: {} as MapOptions,
  15. onReady: (err, controller) => {
  16. if (!err) {
  17. this.mapController = controller
  18. }
  19. }
  20. }
  21. setup(mapKey : string, el : UniNativeViewElement) {
  22. AuthService.getInstance().setKey(mapKey)
  23. el.bindHarmonyWrappedBuilder(wrapBuilder<[TencentMapOptions]>(buildTencentMap), this.params)
  24. }
  25. /**
  26. * 设置地图缩放级别
  27. */
  28. setScaleLevel(scaleLevel : number, animate ?: boolean) {
  29. this.mapController?.setScaleLevel(scaleLevel, animate)
  30. }
  31. /**
  32. * 获取地图缩放级别
  33. */
  34. getScaleLevel() : number {
  35. if (this.mapController != null) {
  36. return this.mapController.getScaleLevel()
  37. }
  38. return -1
  39. }
  40. /**
  41. * 设置是否开启卫星图
  42. */
  43. setSatelliteEnabled(enable : boolean) {
  44. this.mapController?.setSatelliteEnabled(enable)
  45. }
  46. /**
  47. * 设置是否显示路况
  48. */
  49. setTrafficEnable(enable : boolean) {
  50. this.mapController?.setTrafficEnable(enable)
  51. }
  52. /**
  53. * 设置是否显示poi
  54. */
  55. setAnnotationEnable(enable : boolean) {
  56. this.mapController?.setAnnotationEnable(enable)
  57. }
  58. /**
  59. * 设置是否显示建筑物
  60. */
  61. setBuildingEnable(enable : boolean) {
  62. this.mapController?.setBuildingEnable(enable)
  63. }
  64. }