setting.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { setting, sysTiles } from "@/store";
  2. import { nextTick, watchEffect } from "vue";
  3. import { SDK, SettingResourceType } from "../sdk";
  4. import { setPose } from ".";
  5. import { MapTile } from "@/api/map-tile";
  6. export const associationSetting = (sdk: SDK, mountEl: HTMLDivElement) => {
  7. watchEffect(() => {
  8. setting.value?.fov && sdk.setCameraFov(setting.value.fov);
  9. });
  10. sdk.hideGrid()
  11. const stopWatchPose = watchEffect(() => {
  12. if (!setting.value?.pose) return;
  13. setPose(setting.value?.pose);
  14. nextTick(() => stopWatchPose());
  15. });
  16. watchEffect(() => {
  17. if (setting.value) {
  18. // const direEl = document.querySelector("#direction") as HTMLDivElement;
  19. // direEl.style.display = setting.value.openCompass ? "block" : "none";
  20. }
  21. });
  22. watchEffect(() => {
  23. let tile: MapTile | undefined
  24. if (setting.value?.mapId) {
  25. tile = sysTiles.value.find(item => item.id === setting.value?.mapId)
  26. }
  27. if (!tile && setting.value?.back) {
  28. const back = setting.value!.back;
  29. sdk.setBackdrop(
  30. back,
  31. back === "map" ? SettingResourceType.map : SettingResourceType.envImage,
  32. {}
  33. );
  34. return;
  35. } else if (!tile) {
  36. tile = sysTiles.value[0]
  37. }
  38. // sdk.changeMapTile && sdk.changeMapTile([
  39. // 谷歌-栅格瓦片
  40. // {tempUrl: 'https://mt0.google.com/vt/lyrs=m&x={x}&y={y}&z={z}', maximumLevel: 18},
  41. // 谷歌-卫星图
  42. // {tempUrl: 'https://mt0.google.com/vt/lyrs=s&x={x}&y={y}&z={z}', maximumLevel: 18},
  43. // 谷歌-卫星图+标签
  44. // {tempUrl: 'https://mt0.google.com/vt/lyrs=y&x={x}&y={y}&z={z}', maximumLevel: 18},
  45. // 地形图
  46. // {tempUrl: 'https://mt0.google.com/vt/lyrs=t&x={x}&y={y}&z={z}', maximumLevel: 18},
  47. // 仅道路
  48. // {tempUrl: 'https://mt0.google.com/vt/lyrs=h&x={x}&y={y}&z={z}', maximumLevel: 18},
  49. // ])
  50. if (tile) {
  51. console.log('切换瓦片图', tile.mapUrls)
  52. sdk.changeMapTile && sdk.changeMapTile(tile.mapUrls)
  53. sdk.setBackdrop(
  54. 'map',
  55. SettingResourceType.map,
  56. {}
  57. );
  58. }
  59. });
  60. };