@heycar/heycars-map 0.7.3 → 0.7.4-zone2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1937,6 +1937,15 @@ const useMapLoader = (props) => {
1937
1937
  onChange
1938
1938
  });
1939
1939
  };
1940
+ var BRWOSER_PLATFORM = /* @__PURE__ */ ((BRWOSER_PLATFORM2) => {
1941
+ BRWOSER_PLATFORM2["WECHAT"] = "WECHAT";
1942
+ BRWOSER_PLATFORM2["WECHAT_MINIPROGRAM"] = "WECHAT_MINIPROGRAM";
1943
+ BRWOSER_PLATFORM2["ALIPAY"] = "ALIPAY";
1944
+ BRWOSER_PLATFORM2["ALIPAY_MINIPROGRAM"] = "ALIPAY_MINIPROGRAM";
1945
+ BRWOSER_PLATFORM2["H5"] = "H5";
1946
+ BRWOSER_PLATFORM2["NODE_JS"] = "NODE_JS";
1947
+ return BRWOSER_PLATFORM2;
1948
+ })(BRWOSER_PLATFORM || {});
1940
1949
  var OS_PLATFORM = /* @__PURE__ */ ((OS_PLATFORM2) => {
1941
1950
  OS_PLATFORM2["IOS"] = "IOS";
1942
1951
  OS_PLATFORM2["ANDROID"] = "ANDROID";
@@ -1949,6 +1958,18 @@ var WEBGL_STATUS = /* @__PURE__ */ ((WEBGL_STATUS2) => {
1949
1958
  WEBGL_STATUS2["ENABLED"] = "ENABLED";
1950
1959
  return WEBGL_STATUS2;
1951
1960
  })(WEBGL_STATUS || {});
1961
+ const detectBrowserPlatform = () => {
1962
+ if (typeof navigator === "undefined")
1963
+ return "NODE_JS";
1964
+ const useragent = navigator.userAgent.toLowerCase();
1965
+ if (useragent.includes("micromessenger")) {
1966
+ return useragent.includes("miniprogram") ? "WECHAT_MINIPROGRAM" : "WECHAT";
1967
+ }
1968
+ if (useragent.includes("alipay")) {
1969
+ return useragent.includes("miniprogram") ? "ALIPAY_MINIPROGRAM" : "ALIPAY";
1970
+ }
1971
+ return "H5";
1972
+ };
1952
1973
  const detectOSPlatform = () => {
1953
1974
  if (typeof navigator === "undefined")
1954
1975
  return "OTHER";
@@ -1983,6 +2004,56 @@ function detectWebGL() {
1983
2004
  }
1984
2005
  return "NOT_SUPPORTED";
1985
2006
  }
2007
+ const MAX_ANIMATION_DISTANCE_VW = 100;
2008
+ const BEIJIN_POINT = [116.2317, 39.5427];
2009
+ const ZINDEX_BUBBLE_LAYER = 50;
2010
+ const ZINDEX_START_END_LOGO_LAYER = 40;
2011
+ const ZINDEX_PLACE_LAYER = 30;
2012
+ const ZINDEX_CAR_LAYER = 21;
2013
+ const ZINDEX_PASSENGER_LAYER = 20;
2014
+ const ZINDEX_LINE_LAYER = 12;
2015
+ const ZINDEX_GREEN_ZONE = 10;
2016
+ const useAmapLngLatToVw = (props) => {
2017
+ const apiMapLngLatToVw = (point) => {
2018
+ const amap2 = props.mapRef.value;
2019
+ const sw = innerWidth;
2020
+ const [x, y] = amap2 == null ? void 0 : amap2.lngLatToContainer(point).toArray();
2021
+ return [100 * x / sw, 100 * y / sw];
2022
+ };
2023
+ const apiMapDistanceVwOfPoints = (point1, point2) => {
2024
+ const [x1, y1] = apiMapLngLatToVw(point1);
2025
+ const [x2, y2] = apiMapLngLatToVw(point2);
2026
+ const result = Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
2027
+ console.log("distance = ", result);
2028
+ return result;
2029
+ };
2030
+ return { apiMapLngLatToVw, apiMapDistanceVwOfPoints };
2031
+ };
2032
+ const useGmapLngLatToVw = (props) => {
2033
+ const apiMapLngLatToVw = (point) => {
2034
+ var _a, _b, _c;
2035
+ const [lng, lat] = point;
2036
+ const gmap2 = props.mapRef.value;
2037
+ const sw = window.innerWidth;
2038
+ const projection = gmap2 == null ? void 0 : gmap2.getProjection();
2039
+ const worldCoordinate = projection == null ? void 0 : projection.fromLatLngToPoint({ lng, lat });
2040
+ const x = (_a = worldCoordinate == null ? void 0 : worldCoordinate.x) != null ? _a : 0;
2041
+ const y = (_b = worldCoordinate == null ? void 0 : worldCoordinate.y) != null ? _b : 0;
2042
+ const zoom = (_c = gmap2 == null ? void 0 : gmap2.getZoom()) != null ? _c : 0;
2043
+ const scale = 2 ** zoom;
2044
+ return [100 * x * scale / sw, 100 * y * scale / sw];
2045
+ };
2046
+ const apiMapDistanceVwOfPoints = (point1, point2) => {
2047
+ const [x1, y1] = apiMapLngLatToVw(point1);
2048
+ const [x2, y2] = apiMapLngLatToVw(point2);
2049
+ return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
2050
+ };
2051
+ return { apiMapLngLatToVw, apiMapDistanceVwOfPoints };
2052
+ };
2053
+ const useMapLngLatToVw = (props) => {
2054
+ const { supplier } = useMapSupplier();
2055
+ return supplier === "gmap" ? useGmapLngLatToVw(props) : useAmapLngLatToVw(props);
2056
+ };
1986
2057
  const ZOOM_WHEEL_RATIO = -135e-5;
1987
2058
  const useAmapWheelZoomCenter = (props) => {
1988
2059
  const { mapRef, enableRef } = props;
@@ -1991,7 +2062,7 @@ const useAmapWheelZoomCenter = (props) => {
1991
2062
  const { deltaY } = e;
1992
2063
  const prevZoom = (_b = (_a = mapRef.value) == null ? void 0 : _a.getZoom()) != null ? _b : 0;
1993
2064
  const zoom = prevZoom + ZOOM_WHEEL_RATIO * deltaY;
1994
- (_c = mapRef.value) == null ? void 0 : _c.setZoom(zoom);
2065
+ (_c = mapRef.value) == null ? void 0 : _c.setZoom(zoom, true);
1995
2066
  };
1996
2067
  Vue.watch(
1997
2068
  () => enableRef == null ? void 0 : enableRef.value,
@@ -2051,6 +2122,7 @@ const Amap = defineSetup(function Amap2(props, { slots, emit }) {
2051
2122
  const elementRef = Vue.shallowRef();
2052
2123
  const mapRef = Vue.shallowRef();
2053
2124
  provideAmap(mapRef);
2125
+ const { apiMapDistanceVwOfPoints } = useMapLngLatToVw({ mapRef });
2054
2126
  useAmapWheelZoomCenter({ mapRef, enableRef: Vue.computed(() => !!props.touchZoomCenter) });
2055
2127
  Vue.watchPostEffect(() => {
2056
2128
  if (mapRef.value || !elementRef.value)
@@ -2071,10 +2143,28 @@ const Amap = defineSetup(function Amap2(props, { slots, emit }) {
2071
2143
  (_a = mapRef.value) == null ? void 0 : _a.setStatus(statusOptions2);
2072
2144
  }
2073
2145
  );
2146
+ watchNoneImmediatePostEffectForDeepOption(
2147
+ () => props.center,
2148
+ (center, prevCenter) => {
2149
+ const map = mapRef.value;
2150
+ if (!center || !map)
2151
+ return;
2152
+ const immediately = prevCenter ? apiMapDistanceVwOfPoints(center, prevCenter) > MAX_ANIMATION_DISTANCE_VW : true;
2153
+ map.setCenter(center, immediately);
2154
+ }
2155
+ );
2156
+ Vue.watch(
2157
+ () => props.zoom,
2158
+ (zoom) => {
2159
+ const map = mapRef.value;
2160
+ if (!zoom || !map)
2161
+ return;
2162
+ map.setZoom(zoom, true);
2163
+ },
2164
+ { immediate: false, flush: "post" }
2165
+ );
2074
2166
  watchNoneImmediatePostEffectForMapProperty(mapRef, props, [
2075
- { name: "center", defaultValue: [0, 0] },
2076
2167
  { name: "zooms", defaultValue: [2, 20] },
2077
- { name: "zoom", defaultValue: 0 },
2078
2168
  { name: "layers", defaultValue: [] },
2079
2169
  { name: "limitBounds", defaultValue: [] },
2080
2170
  { name: "rotation", defaultValue: 0 },
@@ -2487,7 +2577,8 @@ const ADrivingLine = defineSetup(function ADrivingLine2(props) {
2487
2577
  "strokeOpacity": 1,
2488
2578
  "strokeColor": strokeColorOuter,
2489
2579
  "lineJoin": "round",
2490
- "lineCap": "round"
2580
+ "lineCap": "round",
2581
+ "zIndex": ZINDEX_LINE_LAYER
2491
2582
  }
2492
2583
  }), Vue.h(AmapPolyline, {
2493
2584
  "attrs": {
@@ -2498,7 +2589,8 @@ const ADrivingLine = defineSetup(function ADrivingLine2(props) {
2498
2589
  "lineJoin": "round",
2499
2590
  "lineCap": "round",
2500
2591
  "strokeStyle": "dashed",
2501
- "strokeDasharray": [dashLength, dashLength * 0.5]
2592
+ "strokeDasharray": [dashLength, dashLength * 0.5],
2593
+ "zIndex": ZINDEX_LINE_LAYER
2502
2594
  }
2503
2595
  }), Vue.h(AmapPolyline, {
2504
2596
  "attrs": {
@@ -2507,7 +2599,8 @@ const ADrivingLine = defineSetup(function ADrivingLine2(props) {
2507
2599
  "strokeOpacity": 1,
2508
2600
  "strokeColor": strokeColorInner,
2509
2601
  "lineJoin": "round",
2510
- "lineCap": "round"
2602
+ "lineCap": "round",
2603
+ "zIndex": ZINDEX_LINE_LAYER
2511
2604
  }
2512
2605
  }), Vue.h(AmapPolyline, {
2513
2606
  "attrs": {
@@ -2517,7 +2610,8 @@ const ADrivingLine = defineSetup(function ADrivingLine2(props) {
2517
2610
  "strokeOpacity": 1,
2518
2611
  "strokeColor": "transparent",
2519
2612
  "lineJoin": "round",
2520
- "lineCap": "round"
2613
+ "lineCap": "round",
2614
+ "zIndex": ZINDEX_LINE_LAYER
2521
2615
  }
2522
2616
  })]);
2523
2617
  };
@@ -2539,7 +2633,8 @@ const GDrivingLine = defineSetup(function GDrivingLine2(props) {
2539
2633
  "path": pathRef.value,
2540
2634
  "strokeWeight": strokeWidth + 2 * borderWidth + 2 * outlineWidth,
2541
2635
  "strokeOpacity": 1,
2542
- "strokeColor": strokeColorOuter
2636
+ "strokeColor": strokeColorOuter,
2637
+ "zIndex": ZINDEX_LINE_LAYER
2543
2638
  }
2544
2639
  }), Vue.h(GmapPolyline, {
2545
2640
  "attrs": {
@@ -2554,7 +2649,8 @@ const GDrivingLine = defineSetup(function GDrivingLine2(props) {
2554
2649
  },
2555
2650
  repeat: `${strokeWidth}px`,
2556
2651
  offset: `${strokeWidth / 2}px`
2557
- }]
2652
+ }],
2653
+ "zIndex": ZINDEX_LINE_LAYER
2558
2654
  }
2559
2655
  }), Vue.h(GmapPolyline, {
2560
2656
  "attrs": {
@@ -2570,7 +2666,8 @@ const GDrivingLine = defineSetup(function GDrivingLine2(props) {
2570
2666
  scale: 0.7
2571
2667
  },
2572
2668
  repeat: `${repeat}px`
2573
- }]
2669
+ }],
2670
+ "zIndex": ZINDEX_LINE_LAYER
2574
2671
  }
2575
2672
  })]);
2576
2673
  };
@@ -3007,12 +3104,6 @@ const KeyedFitView = defineSetup(function KeyedFitView2(props, {
3007
3104
  return Vue.h("div", [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
3008
3105
  };
3009
3106
  });
3010
- const BEIJIN_POINT = [116.2317, 39.5427];
3011
- const ZINDEX_BUBBLE_LAYER = 50;
3012
- const ZINDEX_START_END_LOGO_LAYER = 40;
3013
- const ZINDEX_PLACE_LAYER = 30;
3014
- const ZINDEX_CAR_LAYER = 21;
3015
- const ZINDEX_PASSENGER_LAYER = 20;
3016
3107
  const imgEndPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiAzMC4yMTVjMi4xMzQgMCAzLjg2My0uODkzIDMuODYzLTEuOTk1IDAtMS4xLTEuNzMtMS45OTQtMy44NjMtMS45OTQtMi4xMzQgMC0zLjg2My44OTMtMy44NjMgMS45OTQgMCAxLjEwMiAxLjczIDEuOTk1IDMuODYzIDEuOTk1eiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyNy4wMDZjMi4xMjggMC0uOS0zLjc0MyA1LjYyMS02LjY0M0MxOS44NDIgMTguNDUzIDIyIDE0Ljk1MyAyMiAxMC45NSAyMiA0LjkwMiAxNy4wNzUgMCAxMSAwUzAgNC45MDIgMCAxMC45NWMwIDMuOTE4IDIuMDY4IDcuMzU2IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjg0IDkuMDYgMjcuMDA3IDExIDI3LjAwN3oiIHN0cm9rZT0iI0ZGRiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSIvPjx0ZXh0IGZvbnQtZmFtaWx5PSJQaW5nRmFuZ1NDLVNlbWlib2xkLCBQaW5nRmFuZyBTQyIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjUwMCIgZmlsbD0iI0ZGRiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxLjIxNSkiPjx0c3BhbiB4PSI1IiB5PSIxNS40NDkiPue7iDwvdHNwYW4+PC90ZXh0PjwvZz48L3N2Zz4=";
3017
3108
  const imgStartPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIgMzAuMjE1YzEuOTUgMCAzLjUzMi0uODE2IDMuNTMyLTEuODIzIDAtMS4wMDctMS41ODEtMS44MjMtMy41MzItMS44MjMtMS45NSAwLTMuNTMyLjgxNi0zLjUzMiAxLjgyMyAwIDEuMDA3IDEuNTgxIDEuODIzIDMuNTMyIDEuODIzeiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyN2MyLjEyOCAwLS45LTMuNzQyIDUuNjIxLTYuNjQxIDMuMjIxLTEuOTEgNS4zNzktNS40MSA1LjM3OS05LjQxMkMyMiA0LjkwMSAxNy4wNzUgMCAxMSAwUzAgNC45MDEgMCAxMC45NDdjMCAzLjkxOCAyLjA2OCA3LjM1NSA1LjE3NyA5LjI5QzExLjc1IDIzLjI3NyA5LjA2IDI3IDExIDI3eiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMS4yMTUpIi8+PHRleHQgZm9udC1mYW1pbHk9IlBpbmdGYW5nU0MtU2VtaWJvbGQsIFBpbmdGYW5nIFNDIiBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSIjRkZGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSI+PHRzcGFuIHg9IjUiIHk9IjE1LjYyNCI+6LW3PC90c3Bhbj48L3RleHQ+PC9nPjwvc3ZnPg==";
3018
3109
  const StartEndPoint_css_ts_vanilla = "";
@@ -3029,12 +3120,12 @@ const AStartEndPoint = defineSetup(function AStartEndPoint2(props) {
3029
3120
  const icon = props.type === "start" ? imgStartPoint : imgEndPoint;
3030
3121
  const descriptionRow = !props.description ? "" : decodeAsterisk(props.description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
3031
3122
  if (!props.description && !props.title)
3032
- return `<img src="${icon}" class="${pointIcon({
3123
+ return `<img class="AStartEndPoint ${pointIcon({
3033
3124
  type: props.type
3034
- })}">`;
3125
+ })}" src="${icon}">`;
3035
3126
  if (!props.description)
3036
3127
  return `
3037
- <div class="${pointLayout$1}">
3128
+ <div class="AStartEndPoint ${pointLayout$1}">
3038
3129
  <div class="${pointSingleInfoBox$1}">
3039
3130
  <div class="${pointInfoBoxTitle}">${props.title}</div>
3040
3131
  </div>
@@ -3044,7 +3135,7 @@ const AStartEndPoint = defineSetup(function AStartEndPoint2(props) {
3044
3135
  </div>
3045
3136
  `;
3046
3137
  return `
3047
- <div class="${pointLayout$1}">
3138
+ <div class="AStartEndPoint ${pointLayout$1}">
3048
3139
  <div class="${pointInfoBox}">
3049
3140
  <div class="${pointInfoBoxTitle}">${(_a = props.title) != null ? _a : ""}</div>
3050
3141
  <div class="${pointInfoBoxDescription}">${descriptionRow}</div>
@@ -3072,14 +3163,14 @@ const GStartEndPoint = defineSetup(function GStartEndPoint2(props) {
3072
3163
  const descriptionRow = !props.description ? "" : decodeAsterisk(props.description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
3073
3164
  if (!props.description && !props.title)
3074
3165
  return createDom("img", {
3075
- class: pointIcon({
3166
+ class: `GStartEndPoint ${pointIcon({
3076
3167
  type: props.type
3077
- }),
3168
+ })}`,
3078
3169
  src: icon
3079
3170
  });
3080
3171
  if (!props.description)
3081
3172
  return createDom("div", {
3082
- class: pointLayout$1
3173
+ class: `GStartEndPoint ${pointLayout$1}`
3083
3174
  }, `
3084
3175
  <div class="${pointSingleInfoBox$1}">
3085
3176
  <div class="${pointInfoBoxTitle}">${props.title}</div>
@@ -3089,7 +3180,7 @@ const GStartEndPoint = defineSetup(function GStartEndPoint2(props) {
3089
3180
  })}">
3090
3181
  `);
3091
3182
  return createDom("div", {
3092
- class: pointLayout$1
3183
+ class: `GStartEndPoint ${pointLayout$1}`
3093
3184
  }, `
3094
3185
  <div class="${pointInfoBox}">
3095
3186
  <div class="${pointInfoBoxTitle}">${(_a = props.title) != null ? _a : ""}</div>
@@ -3262,6 +3353,20 @@ const watchVisibilityState = () => {
3262
3353
  document.addEventListener("visibilitychange", handleVisibilityChange);
3263
3354
  return { visibilityStateRef, unwatchVisibilityState };
3264
3355
  };
3356
+ const isPlace = (place) => {
3357
+ return place.lng !== void 0 && place.lat !== void 0;
3358
+ };
3359
+ const sleep = (milliSeconds) => new Promise((resolve) => setTimeout(resolve, milliSeconds));
3360
+ const assertPoint = (point) => {
3361
+ if (Array.isArray(point) && point.length === 2 && typeof point[0] === "number" && typeof point[1] === "number")
3362
+ return;
3363
+ throw new Error(`Assertion Error: expect type [number, number], actual is ${point}`);
3364
+ };
3365
+ const assertAngle = (angle) => {
3366
+ if (typeof angle === "number" || typeof angle === "undefined")
3367
+ return;
3368
+ throw new Error(`Assertion Error: expect type number | undefined, actual is ${angle}`);
3369
+ };
3265
3370
  const WX_GET_LOCATION_INTERVAL_STILL = 10 * 1e3;
3266
3371
  const WX_GET_LOCATION_INTERVAL_SLOW = 3 * 1e3;
3267
3372
  const WX_GET_LOCATION_INTERVAL_FAST = 1 * 1e3;
@@ -3269,7 +3374,6 @@ const takeIsForceBrowserGeo = () => {
3269
3374
  const searchParam = new URLSearchParams(location.search);
3270
3375
  return searchParam.has(`force-browser-geo`);
3271
3376
  };
3272
- const sleep$1 = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
3273
3377
  const wxReady = () => new Promise((resolve, reject) => {
3274
3378
  wx.ready(resolve);
3275
3379
  wx.error(reject);
@@ -3293,7 +3397,7 @@ function wechatWatchPosition(onSuccess, onError, option) {
3293
3397
  await wxReady();
3294
3398
  do {
3295
3399
  if (visibilityStateRef.value === "hidden") {
3296
- await sleep$1(WX_GET_LOCATION_INTERVAL_FAST);
3400
+ await sleep(WX_GET_LOCATION_INTERVAL_FAST);
3297
3401
  continue;
3298
3402
  }
3299
3403
  const geoPosition = await new Promise((resolve) => {
@@ -3334,7 +3438,7 @@ function wechatWatchPosition(onSuccess, onError, option) {
3334
3438
  if (geoPosition && !isGeoPositionEqual(geoPosition, prevGeoPosition))
3335
3439
  onSuccess(geoPosition);
3336
3440
  prevGeoPosition = geoPosition;
3337
- await sleep$1(interval);
3441
+ await sleep(interval);
3338
3442
  } while (enable);
3339
3443
  };
3340
3444
  startWatch();
@@ -3358,20 +3462,6 @@ function compatibleWathPosition(onSuccess, onError, option) {
3358
3462
  }
3359
3463
  }
3360
3464
  }
3361
- const isPlace = (place) => {
3362
- return place.lng !== void 0 && place.lat !== void 0;
3363
- };
3364
- const sleep = (milliSeconds) => new Promise((resolve) => setTimeout(resolve, milliSeconds));
3365
- const assertPoint = (point) => {
3366
- if (Array.isArray(point) && point.length === 2 && typeof point[0] === "number" && typeof point[1] === "number")
3367
- return;
3368
- throw new Error(`Assertion Error: expect type [number, number], actual is ${point}`);
3369
- };
3370
- const assertAngle = (angle) => {
3371
- if (typeof angle === "number" || typeof angle === "undefined")
3372
- return;
3373
- throw new Error(`Assertion Error: expect type number | undefined, actual is ${angle}`);
3374
- };
3375
3465
  class SingleGeoWatch {
3376
3466
  constructor(option) {
3377
3467
  __publicField(this, "id", 0);
@@ -3450,6 +3540,9 @@ const useGeoLocation = (props) => {
3450
3540
  var _a, _b;
3451
3541
  const { onChange, onLoad, onLoadDefault, onError, geoDefaultPosition } = props != null ? props : {};
3452
3542
  const { toGcj02 } = useMapGCJ02();
3543
+ const isIOSAlipay = [BRWOSER_PLATFORM.ALIPAY, BRWOSER_PLATFORM.ALIPAY_MINIPROGRAM].includes(
3544
+ detectBrowserPlatform()
3545
+ ) && detectOSPlatform() === OS_PLATFORM.IOS;
3453
3546
  let isOnLoadTriggered = false;
3454
3547
  const loading = Vue.ref(false);
3455
3548
  const readyRef = Vue.ref(false);
@@ -3475,7 +3568,7 @@ const useGeoLocation = (props) => {
3475
3568
  spaceLog("watchPosition", "success duration, position = ", duration, position);
3476
3569
  const coordinate = position.coords;
3477
3570
  const wgsPoint = [position.coords.longitude, position.coords.latitude];
3478
- const point = await toGcj02(wgsPoint);
3571
+ const point = isIOSAlipay ? wgsPoint : await toGcj02(wgsPoint);
3479
3572
  coordinateRef.value = coordinate;
3480
3573
  positionRef.value = point;
3481
3574
  errorRef.value = void 0;
@@ -3511,16 +3604,33 @@ const useGeoLocation = (props) => {
3511
3604
  geoReady: readyRef
3512
3605
  };
3513
3606
  };
3607
+ const MAX_AMAP_PAN_TO_ANIMATE_DURATION = 500;
3608
+ const MIN_AMAP_PAN_TO_ANIMATE_DURATION = 100;
3514
3609
  const useHeycarAmap = () => {
3515
3610
  const amapRef = Vue.shallowRef();
3516
3611
  const amapElementRef = Vue.shallowRef();
3612
+ const { apiMapDistanceVwOfPoints } = useMapLngLatToVw({ mapRef: amapRef });
3517
3613
  const setMap = (map) => {
3518
3614
  amapRef.value = map;
3519
3615
  amapElementRef.value = map.getContainer();
3520
3616
  };
3521
- const panTo = (value) => {
3522
- var _a;
3523
- return (_a = amapRef == null ? void 0 : amapRef.value) == null ? void 0 : _a.panTo(value);
3617
+ const panTo = async (value) => {
3618
+ const amap2 = amapRef.value;
3619
+ if (!amap2)
3620
+ return;
3621
+ const { lng, lat } = amap2.getCenter();
3622
+ const distanceVw = apiMapDistanceVwOfPoints(value, [lng, lat]);
3623
+ const shouldAnimate = distanceVw < MAX_ANIMATION_DISTANCE_VW;
3624
+ if (shouldAnimate) {
3625
+ const duration = Math.max(
3626
+ MIN_AMAP_PAN_TO_ANIMATE_DURATION,
3627
+ Math.floor(MAX_AMAP_PAN_TO_ANIMATE_DURATION * distanceVw / MAX_ANIMATION_DISTANCE_VW)
3628
+ );
3629
+ amap2.panTo(value, duration);
3630
+ await sleep(duration);
3631
+ } else {
3632
+ amap2.setCenter(value, true);
3633
+ }
3524
3634
  };
3525
3635
  return { mapRef: amapRef, mapElementRef: amapElementRef, panTo, setMap };
3526
3636
  };
@@ -5270,7 +5380,8 @@ const useAmapRecomendPlace = (props) => {
5270
5380
  const { pointRef, getRecomendPlace, getLimit, context: context2, emptyPlaceName, onChange, onChangePlace } = props;
5271
5381
  const availableRef = Vue.ref(true);
5272
5382
  const placeCandidatesRef = Vue.ref([]);
5273
- const { idx: recomendPlaceKey, update: updateRecomandPlace } = useUpdate();
5383
+ const zoneRef = Vue.ref();
5384
+ const { idx: recomendPlaceKey, update: updateRecommendPlaceKey } = useUpdate();
5274
5385
  const { readyPromise } = useMapSupplier();
5275
5386
  const { place, updatePlace, setPlace } = useAmapPlace({
5276
5387
  emptyPlaceName,
@@ -5285,49 +5396,76 @@ const useAmapRecomendPlace = (props) => {
5285
5396
  );
5286
5397
  });
5287
5398
  const updatePlaceCandidates = async (place2) => {
5288
- const inputPlaceCandidates = await getRecomendPlace({ ...place2 }, context2);
5399
+ var _a;
5400
+ const {
5401
+ places: inputPlaceCandidates,
5402
+ zone,
5403
+ available
5404
+ } = (_a = await getRecomendPlace({ ...place2 }, context2)) != null ? _a : {};
5405
+ const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
5406
+ availableRef.value = !!available;
5407
+ zoneRef.value = zone;
5408
+ placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
5409
+ };
5410
+ const updateRecommendPlace = (place2) => {
5411
+ setPlace(place2);
5412
+ updateRecommendPlaceKey();
5413
+ };
5414
+ const setPlaceCandidatesAndZone = ({
5415
+ zone,
5416
+ places: inputPlaceCandidates
5417
+ }) => {
5289
5418
  const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
5290
- availableRef.value = placeCandidates !== void 0;
5419
+ zoneRef.value = zone ? zone : void 0;
5291
5420
  placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
5292
5421
  };
5293
5422
  Vue.watch(
5294
5423
  () => recomendPlaceKey.value,
5295
5424
  async () => {
5425
+ var _a;
5296
5426
  await readyPromise;
5297
- const inputPlaceCandidates = await getRecomendPlace({ ...place }, context2);
5427
+ const {
5428
+ places: inputPlaceCandidates,
5429
+ zone,
5430
+ available
5431
+ } = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
5298
5432
  const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
5299
- if (placeCandidates === void 0) {
5300
- availableRef.value = false;
5433
+ if (!available || !placeCandidates) {
5434
+ availableRef.value = !!available;
5435
+ zoneRef.value = zone;
5301
5436
  placeCandidatesRef.value = [];
5302
5437
  Object.assign(recomendPlace, { ...place });
5303
- onChange == null ? void 0 : onChange({ ...place });
5438
+ onChange == null ? void 0 : onChange({ place: { ...place }, inputPlace: { ...place }, isInZone: !!zone });
5304
5439
  return;
5305
5440
  }
5306
5441
  const { shortestPlace, shortestDistance } = findAmapNearestPlace(place, placeCandidates);
5307
5442
  const limit = getLimit(context2);
5308
- const resultPlace = shortestDistance > limit ? place : shortestPlace;
5309
- availableRef.value = true;
5443
+ const resultPlace = zone || shortestDistance <= limit ? shortestPlace : place;
5444
+ availableRef.value = !!available;
5445
+ zoneRef.value = zone;
5310
5446
  placeCandidatesRef.value = placeCandidates;
5311
5447
  Object.assign(recomendPlace, { ...resultPlace });
5312
- onChange == null ? void 0 : onChange({ ...resultPlace });
5448
+ onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace: { ...place }, isInZone: !!zone });
5313
5449
  }
5314
5450
  );
5315
5451
  return {
5452
+ zoneRef,
5316
5453
  recomendPlace,
5317
5454
  placeCandidates: placeCandidatesRef,
5318
5455
  availableRef,
5319
5456
  isElectedRef,
5320
- updateRecomandPlace,
5457
+ updateRecommendPlace,
5321
5458
  updatePlaceCandidates,
5322
5459
  updatePlace,
5323
- setPlace
5460
+ setPlaceCandidatesAndZone
5324
5461
  };
5325
5462
  };
5326
5463
  const useGmapRecomendPlace = (props) => {
5327
5464
  const { pointRef, getRecomendPlace, getLimit, context: context2, emptyPlaceName, onChange, onChangePlace } = props;
5328
5465
  const availableRef = Vue.ref(true);
5329
5466
  const placeCandidatesRef = Vue.ref([]);
5330
- const { idx: recomendPlaceKey, update: updateRecomandPlace } = useUpdate();
5467
+ const zoneRef = Vue.ref();
5468
+ const { idx: recomendPlaceKey, update: updateRecommendPlaceKey } = useUpdate();
5331
5469
  const { readyPromise } = useMapSupplier();
5332
5470
  const { place, updatePlace, setPlace } = useGmapPlace({
5333
5471
  emptyPlaceName,
@@ -5342,40 +5480,64 @@ const useGmapRecomendPlace = (props) => {
5342
5480
  );
5343
5481
  });
5344
5482
  const updatePlaceCandidates = async (place2) => {
5345
- const placeCandidates = await getRecomendPlace({ ...place2 }, context2);
5346
- availableRef.value = placeCandidates !== void 0;
5483
+ var _a;
5484
+ const {
5485
+ places: inputPlaceCandidates,
5486
+ zone,
5487
+ available
5488
+ } = (_a = await getRecomendPlace({ ...place2 }, context2)) != null ? _a : {};
5489
+ const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
5490
+ availableRef.value = !!available;
5491
+ zoneRef.value = zone;
5347
5492
  placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
5348
5493
  };
5494
+ const updateRecommendPlace = (place2) => {
5495
+ setPlace(place2);
5496
+ updateRecommendPlaceKey();
5497
+ };
5498
+ const setPlaceCandidatesAndZone = ({ zone, places }) => {
5499
+ placeCandidatesRef.value = places != null ? places : [];
5500
+ zoneRef.value = zone ? zone : void 0;
5501
+ };
5349
5502
  Vue.watch(
5350
5503
  () => recomendPlaceKey.value,
5351
5504
  async () => {
5505
+ var _a;
5352
5506
  await readyPromise;
5353
- const placeCandidates = await getRecomendPlace({ ...place }, context2);
5354
- if (placeCandidates === void 0) {
5355
- availableRef.value = false;
5507
+ const {
5508
+ places: inputPlaceCandidates,
5509
+ zone,
5510
+ available
5511
+ } = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
5512
+ const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
5513
+ if (!available || !placeCandidates) {
5514
+ availableRef.value = !!available;
5515
+ zoneRef.value = zone;
5356
5516
  placeCandidatesRef.value = [];
5357
5517
  Object.assign(recomendPlace, { ...place });
5358
- onChange == null ? void 0 : onChange({ ...place });
5518
+ onChange == null ? void 0 : onChange({ place: { ...place }, inputPlace: { ...place }, isInZone: !!zone });
5359
5519
  return;
5360
5520
  }
5361
5521
  const { shortestPlace, shortestDistance } = findGmapNearestPlace(place, placeCandidates);
5362
5522
  const limit = getLimit(context2);
5363
5523
  const resultPlace = shortestDistance > limit ? place : shortestPlace;
5364
- availableRef.value = true;
5524
+ availableRef.value = !!available;
5525
+ zoneRef.value = zone;
5365
5526
  placeCandidatesRef.value = placeCandidates;
5366
5527
  Object.assign(recomendPlace, { ...resultPlace });
5367
- onChange == null ? void 0 : onChange({ ...resultPlace });
5528
+ onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace: { ...place }, isInZone: !!zone });
5368
5529
  }
5369
5530
  );
5370
5531
  return {
5532
+ zoneRef,
5371
5533
  recomendPlace,
5372
5534
  placeCandidates: placeCandidatesRef,
5373
5535
  availableRef,
5374
5536
  isElectedRef,
5375
- updateRecomandPlace,
5537
+ updateRecommendPlace,
5376
5538
  updatePlaceCandidates,
5377
5539
  updatePlace,
5378
- setPlace
5540
+ setPlaceCandidatesAndZone
5379
5541
  };
5380
5542
  };
5381
5543
  const useMapRecomendPlace = (props) => {
@@ -5391,7 +5553,7 @@ const useAmapZoom = (props) => {
5391
5553
  const setZoom = (v) => {
5392
5554
  var _a2;
5393
5555
  zoomRef.value = v;
5394
- (_a2 = mapRef.value) == null ? void 0 : _a2.setZoom(v);
5556
+ (_a2 = mapRef.value) == null ? void 0 : _a2.setZoom(v, true);
5395
5557
  };
5396
5558
  const handleZoomEnd = (_, { target }) => {
5397
5559
  const zoom = target.getZoom();
@@ -5429,6 +5591,131 @@ const useMapZoom = (props) => {
5429
5591
  const { supplier } = useMapSupplier();
5430
5592
  return supplier === "gmap" ? useGmapZoom(props) : useAmapZoom(props);
5431
5593
  };
5594
+ const AmapPolygon = defineSetup(function AmapPolygon2(props) {
5595
+ const polygonRef = Vue.shallowRef();
5596
+ const mapRef = useAmap();
5597
+ Vue.onMounted(() => {
5598
+ polygonRef.value = new AMap.Polygon();
5599
+ polygonRef.value.setOptions(props);
5600
+ });
5601
+ Vue.onUnmounted(() => {
5602
+ var _a;
5603
+ (_a = polygonRef.value) == null ? void 0 : _a.setMap(null);
5604
+ });
5605
+ Vue.watchPostEffect(() => {
5606
+ var _a;
5607
+ const map = mapRef == null ? void 0 : mapRef.value;
5608
+ if (!map)
5609
+ return;
5610
+ (_a = polygonRef.value) == null ? void 0 : _a.setMap(map);
5611
+ });
5612
+ watchNoneImmediatePostEffectForMapProperty(polygonRef, props, [
5613
+ { name: "path", defaultValue: [[0, 0]] },
5614
+ { name: "extData", defaultValue: void 0 },
5615
+ { name: "draggable", defaultValue: false }
5616
+ ]);
5617
+ watchNoneImmediatePostEffectForDeepOption(
5618
+ () => {
5619
+ const { path, extData, draggable, ...otherOptions } = props;
5620
+ return otherOptions;
5621
+ },
5622
+ (otherOptions) => {
5623
+ var _a;
5624
+ (_a = polygonRef.value) == null ? void 0 : _a.setOptions({ ...otherOptions });
5625
+ }
5626
+ );
5627
+ return () => null;
5628
+ });
5629
+ const GmapPolygon = defineSetup(function GmapPolygon2(props) {
5630
+ const polygonRef = Vue.shallowRef();
5631
+ const mapRef = useGmap();
5632
+ Vue.onMounted(() => {
5633
+ polygonRef.value = new google.maps.Polygon({ ...props });
5634
+ });
5635
+ Vue.onUnmounted(() => {
5636
+ var _a;
5637
+ (_a = polygonRef.value) == null ? void 0 : _a.setMap(null);
5638
+ });
5639
+ Vue.watchPostEffect(() => {
5640
+ var _a;
5641
+ const map = mapRef == null ? void 0 : mapRef.value;
5642
+ if (!map)
5643
+ return;
5644
+ (_a = polygonRef.value) == null ? void 0 : _a.setMap(map);
5645
+ });
5646
+ watchNoneImmediatePostEffectForDeepOption(
5647
+ () => ({ ...props }),
5648
+ (props2) => {
5649
+ var _a;
5650
+ (_a = polygonRef.value) == null ? void 0 : _a.setOptions({ ...props2 });
5651
+ }
5652
+ );
5653
+ return () => null;
5654
+ });
5655
+ const GREEN_ZONE_FILL_COLOR = "#C7E5FB";
5656
+ const GREEN_ZONE_FILL_OPACITY = 0.5;
5657
+ const GREEN_ZONE_STROKE_COLOR = "#4BA7FF";
5658
+ const GREEN_ZONE_STROKE_WEIGHT_VW = 1;
5659
+ const AGreenZone = defineSetup(function AGreenZone2(props) {
5660
+ const strokeWeight = GREEN_ZONE_STROKE_WEIGHT_VW * globalThis.innerWidth / 100;
5661
+ return () => {
5662
+ return Vue.h(AmapPolygon, {
5663
+ "attrs": {
5664
+ "path": props.path,
5665
+ "strokeColor": GREEN_ZONE_STROKE_COLOR,
5666
+ "strokeStyle": "dashed",
5667
+ "strokeWeight": strokeWeight,
5668
+ "fillColor": GREEN_ZONE_FILL_COLOR,
5669
+ "fillOpacity": GREEN_ZONE_FILL_OPACITY,
5670
+ "zIndex": ZINDEX_GREEN_ZONE
5671
+ }
5672
+ });
5673
+ };
5674
+ });
5675
+ const GGreenZone = defineSetup(function GGreenZone2(props) {
5676
+ const pathRef = Vue.computed(() => props.path.map(vec2lnglat));
5677
+ const strokeWeight = GREEN_ZONE_STROKE_WEIGHT_VW * globalThis.innerWidth / 100;
5678
+ const lineSymbol = {
5679
+ path: "M 0,-1 0,1",
5680
+ strokeOpacity: 1,
5681
+ scale: 4
5682
+ };
5683
+ return () => {
5684
+ const path = pathRef.value;
5685
+ return Vue.h("div", [Vue.h(GmapPolygon, {
5686
+ "attrs": {
5687
+ "paths": path,
5688
+ "strokeColor": GREEN_ZONE_STROKE_COLOR,
5689
+ "strokeOpacity": 0,
5690
+ "strokeWeight": strokeWeight,
5691
+ "fillColor": GREEN_ZONE_FILL_COLOR,
5692
+ "fillOpacity": GREEN_ZONE_FILL_OPACITY,
5693
+ "zIndex": ZINDEX_GREEN_ZONE
5694
+ }
5695
+ }), Vue.h(GmapPolyline, {
5696
+ "attrs": {
5697
+ "path": path,
5698
+ "strokeColor": GREEN_ZONE_STROKE_COLOR,
5699
+ "strokeWeight": GREEN_ZONE_STROKE_WEIGHT_VW,
5700
+ "icons": [{
5701
+ icon: lineSymbol,
5702
+ offset: "0",
5703
+ repeat: "20px"
5704
+ }]
5705
+ }
5706
+ })]);
5707
+ };
5708
+ });
5709
+ const GreenZone = defineSetup(function GreenZone2(props) {
5710
+ const payload = useMapSupplier();
5711
+ return () => {
5712
+ if (!props.path.length)
5713
+ return null;
5714
+ return createElement(payload.supplier === "gmap" ? GGreenZone : AGreenZone, {
5715
+ attrs: props
5716
+ });
5717
+ };
5718
+ });
5432
5719
  const imgPassengerCircleArrow = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxmaWx0ZXIgeD0iLTI4LjYlIiB5PSItMjguNiUiIHdpZHRoPSIxNTcuMSUiIGhlaWdodD0iMTU3LjElIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJwcmVmaXhfX2EiPjxmZU9mZnNldCBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIi8+PGZlQ29tcG9zaXRlIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0ib3V0IiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjc3NDUzMDE2IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIi8+PC9maWx0ZXI+PGNpcmNsZSBpZD0icHJlZml4X19iIiBjeD0iMzAiIGN5PSIzMCIgcj0iMTAuNSIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9Ii4xIiBzdHJva2U9IiMwMDNERkYiIGZpbGwtb3BhY2l0eT0iLjE1IiBmaWxsPSIjNDg3M0ZFIiBjeD0iMzAiIGN5PSIzMCIgcj0iMjkuNSIvPjxwYXRoIGZpbGw9IiM0ODcxRjEiIGQ9Ik0zMCAxMC41NTdsNi4zNDIgMTIuNjg0SDIzLjY1OHoiLz48dXNlIGZpbGw9IiMwMDAiIGZpbHRlcj0idXJsKCNwcmVmaXhfX2EpIiB4bGluazpocmVmPSIjcHJlZml4X19iIi8+PGNpcmNsZSBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVqb2luPSJzcXVhcmUiIGZpbGw9IiM0ODcxRjEiIGN4PSIzMCIgY3k9IjMwIiByPSI5Ii8+PC9nPjwvc3ZnPg==";
5433
5720
  const imgPassengerCircle = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjEiIGhlaWdodD0iNjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxmaWx0ZXIgeD0iLTcuMSUiIHk9Ii03LjElIiB3aWR0aD0iMTE0LjMlIiBoZWlnaHQ9IjExNC4zJSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0icHJlZml4X19hIj48ZmVPZmZzZXQgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSIvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249Ii41IiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb21wb3NpdGUgaW49InNoYWRvd0JsdXJPdXRlcjEiIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJvdXQiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNzc0NTMwMTYgMCIgaW49InNoYWRvd0JsdXJPdXRlcjEiLz48L2ZpbHRlcj48Y2lyY2xlIGlkPSJwcmVmaXhfX2IiIGN4PSIzMCIgY3k9IjMwIiByPSIxMC41Ii8+PC9kZWZzPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC40MDUgLjI2NCkiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PGNpcmNsZSBzdHJva2Utb3BhY2l0eT0iLjEiIHN0cm9rZT0iIzAwM0RGRiIgZmlsbC1vcGFjaXR5PSIuMTUiIGZpbGw9IiM0ODczRkUiIGN4PSIzMCIgY3k9IjMwIiByPSIyOS41Ii8+PHVzZSBmaWxsPSIjMDAwIiBmaWx0ZXI9InVybCgjcHJlZml4X19hKSIgeGxpbms6aHJlZj0iI3ByZWZpeF9fYiIvPjxjaXJjbGUgc3Ryb2tlPSIjRkZGIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVqb2luPSJzcXVhcmUiIGZpbGw9IiM0ODcxRjEiIGN4PSIzMCIgY3k9IjMwIiByPSI5LjMiLz48L2c+PC9zdmc+";
5434
5721
  const imgPassengerSmallArrow = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjkiIGhlaWdodD0iMzQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxmaWx0ZXIgeD0iLTI4LjYlIiB5PSItMjguNiUiIHdpZHRoPSIxNTcuMSUiIGhlaWdodD0iMTU3LjElIiBmaWx0ZXJVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIGlkPSJwcmVmaXhfX2EiPjxmZU9mZnNldCBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0ic2hhZG93T2Zmc2V0T3V0ZXIxIi8+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIi8+PGZlQ29tcG9zaXRlIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0ib3V0IiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiLz48ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMjQgMCIgaW49InNoYWRvd0JsdXJPdXRlcjEiLz48L2ZpbHRlcj48Y2lyY2xlIGlkPSJwcmVmaXhfX2IiIGN4PSIxMC41IiBjeT0iMTkuNSIgcj0iMTAuNSIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiM0NDcxRkYiIGQ9Ik0xNC40ODEgMGw2LjYwMyAxMy4xODFINy44Nzl6Ii8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNCkiPjx1c2UgZmlsbD0iIzAwMCIgZmlsdGVyPSJ1cmwoI3ByZWZpeF9fYSkiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2IiLz48Y2lyY2xlIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lam9pbj0ic3F1YXJlIiBmaWxsPSIjNDg3MUYxIiBjeD0iMTAuNSIgY3k9IjE5LjUiIHI9IjkuMyIvPjwvZz48L2c+PC9zdmc+";
@@ -5445,9 +5732,9 @@ const APassengerCircle = defineSetup(function APassengerCircle2(props) {
5445
5732
  const style2 = angle === void 0 ? "" : `transform: rotate(var(${angle}))`;
5446
5733
  const type = size === "large" ? angle === void 0 ? "large" : "largeArrow" : angle === void 0 ? "small" : "smallArrow";
5447
5734
  return `
5448
- <img src="${src}" class="${passengerCircle({
5735
+ <img class="APassengerCircle ${passengerCircle({
5449
5736
  type
5450
- })}" style="${style2}">
5737
+ })}" style="${style2}" src="${src}">
5451
5738
  `;
5452
5739
  });
5453
5740
  return () => {
@@ -5472,9 +5759,9 @@ const GPassengerCircle = defineSetup(function GPassengerCircle2(props) {
5472
5759
  const style2 = angle === void 0 ? "" : `transform: rotate(var(${angle}))`;
5473
5760
  const type = size === "large" ? angle === void 0 ? "large" : "largeArrow" : angle === void 0 ? "small" : "smallArrow";
5474
5761
  return createDom("img", {
5475
- class: passengerCircle({
5762
+ class: `GPassengerCircle ${passengerCircle({
5476
5763
  type
5477
- }),
5764
+ })}`,
5478
5765
  src,
5479
5766
  style: style2
5480
5767
  });
@@ -5528,42 +5815,15 @@ const ConditionalFittablePassengerCircle = defineSetup(function ConditionalFitta
5528
5815
  })]);
5529
5816
  };
5530
5817
  });
5531
- const useAmapLngLatToVw = () => {
5532
- const amap2 = useAmap();
5533
- const apiMapLngLatToVw = (point) => {
5534
- var _a;
5535
- return (_a = amap2 == null ? void 0 : amap2.value) == null ? void 0 : _a.lngLatToContainer(point).toArray();
5536
- };
5537
- return { apiMapLngLatToVw };
5538
- };
5539
- const useGmapLngLatToVw = () => {
5540
- const gmap2 = useGmap();
5541
- const apiMapLngLatToVw = (point) => {
5542
- var _a, _b, _c, _d, _e;
5543
- const [lng, lat] = point;
5544
- const projection = (_a = gmap2 == null ? void 0 : gmap2.value) == null ? void 0 : _a.getProjection();
5545
- const worldCoordinate = projection == null ? void 0 : projection.fromLatLngToPoint({ lng, lat });
5546
- const x = (_b = worldCoordinate == null ? void 0 : worldCoordinate.x) != null ? _b : 0;
5547
- const y = (_c = worldCoordinate == null ? void 0 : worldCoordinate.y) != null ? _c : 0;
5548
- const zoom = (_e = (_d = gmap2 == null ? void 0 : gmap2.value) == null ? void 0 : _d.getZoom()) != null ? _e : 0;
5549
- const scale = 2 ** zoom;
5550
- return [x * scale, y * scale];
5551
- };
5552
- return { apiMapLngLatToVw };
5553
- };
5554
- const useMapLngLatToVw = () => {
5555
- const { supplier } = useMapSupplier();
5556
- return supplier === "gmap" ? useGmapLngLatToVw() : useAmapLngLatToVw();
5557
- };
5558
5818
  const reverse = (direction) => direction === "left" ? "right" : "left";
5559
5819
  const usePointsLabelDirection = (props) => {
5560
5820
  const { widthLimit, heightLimit } = props;
5561
- const { apiMapLngLatToVw } = useMapLngLatToVw();
5821
+ const mapRef = useMap();
5822
+ const { apiMapLngLatToVw } = useMapLngLatToVw({ mapRef });
5562
5823
  const diffVw = (from, to) => {
5563
- const vw = 100 / window.innerWidth;
5564
5824
  const [x1, y1] = apiMapLngLatToVw(from);
5565
5825
  const [x2, y2] = apiMapLngLatToVw(to);
5566
- return [(x2 - x1) * vw, (y2 - y1) * vw];
5826
+ return [x2 - x1, y2 - y1];
5567
5827
  };
5568
5828
  const directionsRef = Vue.ref(Array(props.places.length).fill("right"));
5569
5829
  watchEffectForDeepOption(
@@ -5631,7 +5891,7 @@ const APlaceCircle = defineSetup(function APlaceCircle2(props, {
5631
5891
  hideIcon = false
5632
5892
  } = props;
5633
5893
  return `
5634
- <div class="${placeCircleLayout({
5894
+ <div class="APlaceCircle ${placeCircleLayout({
5635
5895
  textAlign: textAlignRef.value
5636
5896
  })}">
5637
5897
  <img class="${placeIcon({
@@ -5647,7 +5907,7 @@ const APlaceCircle = defineSetup(function APlaceCircle2(props, {
5647
5907
  const {
5648
5908
  hideIcon = false
5649
5909
  } = props;
5650
- return `<img class="${placeIcon({
5910
+ return `<img class="APlaceCircle ${placeIcon({
5651
5911
  hideIcon
5652
5912
  })} ${amapPlaceIconLayout({
5653
5913
  textAlign: textAlignRef.value
@@ -5682,7 +5942,7 @@ const GPlaceCircle = defineSetup(function GPlaceCircle2(props, {
5682
5942
  hideIcon = false
5683
5943
  } = props;
5684
5944
  return createDom("div", {
5685
- class: `${placeCircleLayout({
5945
+ class: `GPlaceCircle ${placeCircleLayout({
5686
5946
  textAlign: textAlignRef.value
5687
5947
  })} ${gmapPlaceIconLayout({
5688
5948
  textAlign: textAlignRef.value
@@ -5699,7 +5959,7 @@ const GPlaceCircle = defineSetup(function GPlaceCircle2(props, {
5699
5959
  hideIcon = false
5700
5960
  } = props;
5701
5961
  return createDom("img", {
5702
- class: `${placeIcon({
5962
+ class: `GPlaceCircle ${placeIcon({
5703
5963
  hideIcon
5704
5964
  })} ${gmapPlaceIconLayout({
5705
5965
  textAlign: textAlignRef.value
@@ -5762,27 +6022,18 @@ const PickupPoints = defineSetup(function PickupPoints2(props, {
5762
6022
  })]);
5763
6023
  };
5764
6024
  });
5765
- const useFirstWorkflowRecomendLoading = () => {
5766
- const isFirstWorkflowRecomendLoadingRef = Vue.ref(true);
5767
- const completeFirstWorkflowRecomend = () => {
5768
- if (!isFirstWorkflowRecomendLoadingRef.value)
5769
- return;
5770
- isFirstWorkflowRecomendLoadingRef.value = false;
5771
- };
5772
- return { isFirstWorkflowRecomendLoadingRef, completeFirstWorkflowRecomend };
5773
- };
5774
6025
  const RECOMMEND_PLACE_DRAG_LIMIT = 10;
5775
6026
  const RECOMMEND_PLACE_LARGE_LIMIT = 100;
5776
6027
  const RECOMMEND_PLACE_ZOOM_MIN = 13;
5777
6028
  const DEFAULT_PLACE_NAME = "当前位置";
5778
- const DEFAULT_ZOOM = 8;
5779
- const READY_ZOOM = 17;
6029
+ const DEFAULT_ZOOM = 17;
5780
6030
  const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlaceMap2(props, {
5781
6031
  emit,
5782
6032
  slots
5783
6033
  }) {
5784
6034
  var _a, _b;
5785
6035
  const {
6036
+ geoLoadingTitle,
5786
6037
  geoDefaultPosition,
5787
6038
  getRecomendPlace,
5788
6039
  getDefaultCenterPlace,
@@ -5799,27 +6050,22 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5799
6050
  readyPromise
5800
6051
  } = useMapSupplier();
5801
6052
  const {
5802
- zoomRef,
5803
- setZoom
6053
+ zoomRef
5804
6054
  } = useMapZoom({
5805
6055
  mapRef,
5806
6056
  defaultValue: DEFAULT_ZOOM
5807
6057
  });
5808
- const {
5809
- isFirstWorkflowRecomendLoadingRef,
5810
- completeFirstWorkflowRecomend
5811
- } = useFirstWorkflowRecomendLoading();
5812
6058
  const centerPlace = Vue.reactive({
5813
6059
  lng: (_a = geoDefaultPosition == null ? void 0 : geoDefaultPosition[0]) != null ? _a : 0,
5814
6060
  lat: (_b = geoDefaultPosition == null ? void 0 : geoDefaultPosition[1]) != null ? _b : 0,
5815
- name: "",
5816
- displayName: ""
6061
+ name: geoLoadingTitle,
6062
+ displayName: geoLoadingTitle
5817
6063
  });
5818
6064
  const centerPoint = Vue.computed(() => [centerPlace.lng, centerPlace.lat]);
5819
6065
  const centerSource = {
5820
6066
  source: "geo"
5821
6067
  };
5822
- const setCenterPlaceByRecomand = (point) => {
6068
+ const updateCenterPlaceByPoint = (point) => {
5823
6069
  centerSource.source = "api";
5824
6070
  updatePlace(point);
5825
6071
  };
@@ -5833,15 +6079,40 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5833
6079
  emit("changePlace", {
5834
6080
  ...place
5835
6081
  });
5836
- updatePlaceCandidates(place);
5837
- await pipeDefer(setZoom)(READY_ZOOM);
6082
+ updateRecommendPlace(place);
5838
6083
  };
5839
- const setCenterByPlace = (place) => {
6084
+ const setCenterPlaceByUserSpecifiedInZone = ({
6085
+ place,
6086
+ recommends
6087
+ }) => {
6088
+ centerPlace.lng = place.lng;
6089
+ centerPlace.lat = place.lat;
6090
+ centerPlace.name = place.name;
6091
+ centerPlace.displayName = place.displayName;
6092
+ setPlaceCandidatesAndZone(recommends);
6093
+ emit("changePlace", {
6094
+ ...place
6095
+ });
6096
+ };
6097
+ const panToCenterByPlace = async (place) => {
5840
6098
  centerSource.source = "api";
6099
+ await panTo(place2point(place));
5841
6100
  centerPlace.lng = place.lng;
5842
6101
  centerPlace.lat = place.lat;
5843
6102
  centerPlace.name = place.name;
5844
6103
  centerPlace.displayName = place.displayName;
6104
+ emit("changePlace", {
6105
+ ...place
6106
+ });
6107
+ emit("changeRecomandPlace", {
6108
+ place: {
6109
+ ...place
6110
+ },
6111
+ inputPlace: {
6112
+ ...place
6113
+ },
6114
+ isInZone: !!zoneRef.value
6115
+ });
5845
6116
  };
5846
6117
  const defaultCenterPlacePromise = new Promise((resolve) => {
5847
6118
  getDefaultCenterPlace().then(resolve).catch(() => resolve(void 0));
@@ -5872,9 +6143,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5872
6143
  await setCenterPlaceByUserSpecified(place);
5873
6144
  } else {
5874
6145
  updatePlace(value.position);
5875
- await pipeDefer(setZoom)(READY_ZOOM);
5876
6146
  }
5877
- completeFirstWorkflowRecomend();
5878
6147
  },
5879
6148
  onChange: (v) => emit("changeGeoLocation", v),
5880
6149
  onError: (e) => {
@@ -5882,10 +6151,11 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5882
6151
  }
5883
6152
  });
5884
6153
  mapContext.setCenterPlaceByUserSpecified = setCenterPlaceByUserSpecified;
6154
+ mapContext.setCenterPlaceByUserSpecifiedInZone = setCenterPlaceByUserSpecifiedInZone;
5885
6155
  mapContext.panToGeoPositionByRecomend = () => {
5886
6156
  if (geoError.value)
5887
6157
  return false;
5888
- setCenterPlaceByRecomand(geoPosition.value);
6158
+ updateCenterPlaceByPoint(geoPosition.value);
5889
6159
  return true;
5890
6160
  };
5891
6161
  const {
@@ -5900,9 +6170,10 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5900
6170
  });
5901
6171
  const {
5902
6172
  updatePlace,
5903
- updateRecomandPlace,
5904
- updatePlaceCandidates,
6173
+ updateRecommendPlace,
6174
+ setPlaceCandidatesAndZone,
5905
6175
  placeCandidates,
6176
+ zoneRef,
5906
6177
  availableRef,
5907
6178
  isElectedRef
5908
6179
  } = useMapRecomendPlace({
@@ -5925,20 +6196,26 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5925
6196
  },
5926
6197
  onChangePlace: (place) => {
5927
6198
  if (centerSource.source !== "recomend") {
5928
- updateRecomandPlace();
6199
+ updateRecommendPlace(place);
5929
6200
  }
5930
6201
  emit("changePlace", place);
5931
6202
  },
5932
- onChange: async (place) => {
6203
+ onChange: async ({
6204
+ place,
6205
+ inputPlace,
6206
+ isInZone
6207
+ }) => {
5933
6208
  centerSource.source = "recomend";
6209
+ if (isPlaceEqual(place, centerPlace))
6210
+ panTo(place2point(place));
5934
6211
  Object.assign(centerPlace, {
5935
6212
  ...place
5936
6213
  });
5937
- panTo(place2point(place));
5938
- emit("changeRecomandPlace", place);
5939
- if (isFirstWorkflowRecomendLoadingRef.value)
5940
- await pipeDefer(setZoom)(READY_ZOOM);
5941
- completeFirstWorkflowRecomend();
6214
+ emit("changeRecomandPlace", {
6215
+ place,
6216
+ inputPlace,
6217
+ isInZone
6218
+ });
5942
6219
  }
5943
6220
  });
5944
6221
  Vue.watchEffect(() => {
@@ -5950,12 +6227,13 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5950
6227
  mapContext.onChangeRecomendPlaces([...placeCandidates.value]);
5951
6228
  });
5952
6229
  return () => {
6230
+ var _a2, _b2;
5953
6231
  const {
5954
- geoLoadingTitle,
6232
+ geoLoadingTitle: geoLoadingTitle2,
5955
6233
  recomendDescription,
5956
6234
  unavailableTitle
5957
6235
  } = props;
5958
- const title = geoLoading.value ? geoLoadingTitle : !availableRef.value ? unavailableTitle : centerPlace.displayName;
6236
+ const title = geoLoading.value ? geoLoadingTitle2 : !availableRef.value ? unavailableTitle : centerPlace.displayName;
5959
6237
  const description = !availableRef.value ? void 0 : isElectedRef.value ? recomendDescription : void 0;
5960
6238
  return Vue.h(HeycarMap, {
5961
6239
  "attrs": {
@@ -5966,7 +6244,11 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5966
6244
  "fallback": slots.fallback,
5967
6245
  "loading": slots.loading
5968
6246
  }
5969
- }, [!geoLoading.value && !geoError.value && Vue.h(PassengerCircle, {
6247
+ }, [((_a2 = zoneRef.value) == null ? void 0 : _a2.path.length) && Vue.h(GreenZone, {
6248
+ "attrs": {
6249
+ "path": (_b2 = zoneRef.value) == null ? void 0 : _b2.path
6250
+ }
6251
+ }), !geoLoading.value && !geoError.value && Vue.h(PassengerCircle, {
5970
6252
  "attrs": {
5971
6253
  "position": geoPosition.value,
5972
6254
  "angle": orientation.cssRotationVariableName
@@ -5977,9 +6259,9 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
5977
6259
  "renderLabel": (place) => isPlaceEqual(place, centerPlace) ? void 0 : place.displayName
5978
6260
  },
5979
6261
  "on": {
5980
- "click": setCenterByPlace
6262
+ "click": panToCenterByPlace
5981
6263
  }
5982
- }), geoLoading.value || isFirstWorkflowRecomendLoadingRef.value ? null : Vue.h(AbsoluteAddressBox, {
6264
+ }), geoLoading.value ? null : Vue.h(AbsoluteAddressBox, {
5983
6265
  "attrs": {
5984
6266
  "title": title,
5985
6267
  "description": description,
@@ -6038,10 +6320,10 @@ const ATaxiCar = defineSetup(function ATaxiCar2(props) {
6038
6320
  const carStyle = `transform:rotate(${(_a = props.angle) != null ? _a : 0}deg)`;
6039
6321
  if (!props.title)
6040
6322
  return {
6041
- img: `<img src="${imgTaxicar}" class="${carIcon}" style="${carStyle}">`
6323
+ img: `<img class="ATaxiCar ${carIcon}" src="${imgTaxicar}" style="${carStyle}">`
6042
6324
  };
6043
6325
  const content = (hide$1) => `
6044
- <div class="${pointLayout}">
6326
+ <div class="ATaxiCar ${pointLayout}">
6045
6327
  <div class="${pointSingleInfoBox} ${hide({
6046
6328
  hide: !hide$1
6047
6329
  })}">
@@ -6083,13 +6365,13 @@ const GTaxiCar = defineSetup(function GTaxiCar2(props) {
6083
6365
  if (!props.title)
6084
6366
  return {
6085
6367
  img: createDom("img", {
6086
- class: carIcon,
6368
+ class: `GTaxiCar ${carIcon}`,
6087
6369
  src: imgTaxicar,
6088
6370
  style: carStyle
6089
6371
  })
6090
6372
  };
6091
6373
  const content = (hide$1) => createDom("div", {
6092
- class: pointLayout
6374
+ class: `GTaxiCar ${pointLayout}`
6093
6375
  }, `
6094
6376
  <div class="${pointSingleInfoBox} ${hide({
6095
6377
  hide: !hide$1
@@ -6149,7 +6431,8 @@ const AWalkingLine = defineSetup(function AWalkingLine2(props) {
6149
6431
  "strokeStyle": "dashed",
6150
6432
  "strokeDasharray": [strokeWidth, strokeWidth * 1.5],
6151
6433
  "lineJoin": "round",
6152
- "lineCap": "round"
6434
+ "lineCap": "round",
6435
+ "zIndex": ZINDEX_LINE_LAYER
6153
6436
  }
6154
6437
  });
6155
6438
  };
@@ -6185,7 +6468,8 @@ const GWalkingLine = defineSetup(function GWalkingLine2(props) {
6185
6468
  scale: 1
6186
6469
  },
6187
6470
  repeat: `${strokeWidth * 2}px`
6188
- }]
6471
+ }],
6472
+ "zIndex": ZINDEX_LINE_LAYER
6189
6473
  }
6190
6474
  });
6191
6475
  };
@@ -6314,8 +6598,8 @@ const WaveCircle_css_ts_vanilla = "";
6314
6598
  var secondCircle = "rrvp0y3";
6315
6599
  var waveCircle = "rrvp0y2";
6316
6600
  const AWaveCircle = defineSetup(function AWaveCircle2(props) {
6317
- const contentRef = Vue.computed(() => `<img src="${imgWaveCircle}" class="${waveCircle}">`);
6318
- const contentAnotherRef = Vue.computed(() => `<img src="${imgWaveCircle}" class="${waveCircle} ${secondCircle}">`);
6601
+ const contentRef = Vue.computed(() => `<img class="AWaveCircle ${waveCircle}" src="${imgWaveCircle}">`);
6602
+ const contentAnotherRef = Vue.computed(() => `<img class="AWaveCircle ${waveCircle} ${secondCircle}" src="${imgWaveCircle}">`);
6319
6603
  return () => Vue.h("div", [Vue.h(AmapMarker, {
6320
6604
  "attrs": {
6321
6605
  "position": props.position,
@@ -6332,11 +6616,11 @@ const AWaveCircle = defineSetup(function AWaveCircle2(props) {
6332
6616
  });
6333
6617
  const GWaveCircle = defineSetup(function GWaveCircle2(props) {
6334
6618
  const contentRef = Vue.computed(() => createDom("img", {
6335
- class: waveCircle,
6619
+ class: `GWaveCircle ${waveCircle}`,
6336
6620
  src: imgWaveCircle
6337
6621
  }));
6338
6622
  const contentAnotherRef = Vue.computed(() => createDom("img", {
6339
- class: `${waveCircle} ${secondCircle}`,
6623
+ class: `GWaveCircle ${waveCircle} ${secondCircle}`,
6340
6624
  src: imgWaveCircle
6341
6625
  }));
6342
6626
  return () => {
@@ -7081,11 +7365,24 @@ const BusinessTaxiServiceMap = defineLagecySetup(function BusinessTaxiServiceMap
7081
7365
  )]);
7082
7366
  };
7083
7367
  }).props(["bookDispatchingTitle", "dispatchingTitle", "driverArrivedTitle", "driverStatus", "fallback", "from", "getDriverPosition", "interval", "loading", "mapRef", "renderInServiceTitle", "renderStartSerivceTitle", "to", "registerOverlay"]);
7368
+ const useBusinessAlarm = (props) => {
7369
+ const emptyPlaceName = props == null ? void 0 : props.emptyPlaceName;
7370
+ const { geoPosition, geoError } = useGeoLocation({
7371
+ onChange: ({ position }) => {
7372
+ updatePlace(position);
7373
+ }
7374
+ });
7375
+ const { updatePlace, place } = useMapPlace({
7376
+ pointRef: geoPosition,
7377
+ emptyPlaceName: emptyPlaceName != null ? emptyPlaceName : ""
7378
+ });
7379
+ return { place, geoError };
7380
+ };
7084
7381
  const useBusinessQuotingMap = () => {
7085
7382
  const { setMap, mapRef } = useHeycarMap();
7086
7383
  const { registerFitVeiw, setFitView } = useMapFitView({
7087
7384
  mapRef,
7088
- padding: [19, 26, 19, 26]
7385
+ padding: [26, 26, 19, 26]
7089
7386
  });
7090
7387
  return { setMap, registerFitVeiw, setFitView };
7091
7388
  };
@@ -7101,6 +7398,7 @@ const useBusinessRecomendPlaceMap = () => {
7101
7398
  const { inChina } = useMapInChina();
7102
7399
  const panToGeoPositionByRecomend = (value) => mapContext.panToGeoPositionByRecomend(value);
7103
7400
  const setCenterPlaceByUserSpecified = (value) => mapContext.setCenterPlaceByUserSpecified(value);
7401
+ const setCenterPlaceByUserSpecifiedInZone = (value) => mapContext.setCenterPlaceByUserSpecifiedInZone(value);
7104
7402
  const mapContext = {
7105
7403
  panToGeoPositionByRecomend: () => {
7106
7404
  throw new Error("MyError: panToGeoPositionByRecomend used before assigned");
@@ -7108,6 +7406,9 @@ const useBusinessRecomendPlaceMap = () => {
7108
7406
  setCenterPlaceByUserSpecified: () => {
7109
7407
  throw new Error("MyError: setCenterPlaceByRecomand used before assigned");
7110
7408
  },
7409
+ setCenterPlaceByUserSpecifiedInZone: () => {
7410
+ throw new Error("MyError: setCenterPlaceByUserSpecifiedInZone used before assigned");
7411
+ },
7111
7412
  onChangeCenterPlace: (place) => {
7112
7413
  Object.assign(centerPlace, { ...place });
7113
7414
  },
@@ -7121,6 +7422,7 @@ const useBusinessRecomendPlaceMap = () => {
7121
7422
  placeCandidates,
7122
7423
  panToGeoPositionByRecomend,
7123
7424
  setCenterPlaceByUserSpecified,
7425
+ setCenterPlaceByUserSpecifiedInZone,
7124
7426
  apiMapDistance,
7125
7427
  apiMapInChina: inChina
7126
7428
  };
@@ -7152,6 +7454,7 @@ exports.TaxiCar = TaxiCar;
7152
7454
  exports.WalkingLine = WalkingLine;
7153
7455
  exports.WalkingRoute = WalkingRoute;
7154
7456
  exports.WaveCircle = WaveCircle;
7457
+ exports.useBusinessAlarm = useBusinessAlarm;
7155
7458
  exports.useBusinessQuotingMap = useBusinessQuotingMap;
7156
7459
  exports.useBusinessRecomendPlaceMap = useBusinessRecomendPlaceMap;
7157
7460
  exports.useBusinessTaxiServiceMap = useBusinessTaxiServiceMap;