@heycar/heycars-map 0.9.23-alpha6 → 0.9.23-alpha8

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
@@ -19,7 +19,7 @@ if (typeof GeolocationPositionError === "undefined") {
19
19
  };
20
20
  }
21
21
  const name = "@heycar/heycars-map";
22
- const version = "0.9.23-alpha6";
22
+ const version = "0.9.23-alpha8";
23
23
  const type = "module";
24
24
  const bin = {
25
25
  checkVersion: "./bin/checkVersion.js"
@@ -138,29 +138,11 @@ const logVersion = () => {
138
138
  window.HeycarMapVersion = pkg.version;
139
139
  };
140
140
  Vue.util.warn;
141
- const MAX_ANIMATION_DISTANCE_VW = 300;
142
- const MIN_ANIMATION_DURATION = 300;
143
- const ANIMATION_DURATION_FOR_100VW = 200;
144
- const ANIMATION_DURATION_PER_ZOOM = 400;
145
- const BEIJIN_POINT = [116.2317, 39.5427];
146
- const MAX_DEVIATION_DISTANCE = 30;
147
- const CAR_DISTANCE_MIN = 100;
148
- const ZINDEX_BUBBLE_LAYER = 50;
149
- const ZINDEX_START_END_LOGO_LAYER = 40;
150
- const ZINDEX_PLACE_LAYER = 30;
151
- const ZINDEX_CAR_LAYER = 21;
152
- const ZINDEX_PASSENGER_LAYER = 20;
153
- const ZINDEX_AUXILIARY_GRASP = 14;
154
- const ZINDEX_LINE_LAYER = 12;
155
- const ZINDEX_GREEN_ZONE = 10;
156
- const TRACKS_MATCH_MAX_LENGTH = 3;
157
- const REGEO_TIMEOUT = 5e3;
158
- const GET_RECOMMEND_PLACE_TIMEOUT = 5e3;
159
- const GET_DEFAULT_CENTER_PLACE_TIMEOUT = 5e3;
160
- const AMAP_TO_GCJ02_TIMEOUT = 2e3;
161
- const IS_ENABLE_AUXILIARY_GRASP_ROAD = location.search.includes("enableAuxiliaryGraspRoad");
162
141
  const AMAP_DEFAULT_MARKER_ICON_URL = "https://webapi.amap.com/theme/v1.3/markers/b/mark_bs.png";
163
142
  const ICON_FULL_SCREEN_URL = "https://overseas-oss.heycars.cn/heycar-map/png/fullscreen.png";
143
+ const ICON_START_POINT_EN_URL = "https://overseas-oss.heycars.cn/heycar-map/svg/start-point-en.svg";
144
+ const ICON_END_POINT_EN_URL = "https://overseas-oss.heycars.cn/heycar-map/svg/end-point-en.svg";
145
+ const ICON_END_POINT_ZH_TW_URL = "https://overseas-oss.heycars.cn/heycar-map/svg/end-point-zh-TW.svg";
164
146
  const imgDotLoading$1 = "data:image/gif;base64,R0lGODlhVAASAIABAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjMgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzAyRUQ3RjJEQUE0MTFFRDhERUI4MUEwRjVENjA1RTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzAyRUQ3RjNEQUE0MTFFRDhERUI4MUEwRjVENjA1RTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NDBDQkFGNURBOUYxMUVEOERFQjgxQTBGNUQ2MDVFNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NDBDQkFGNkRBOUYxMUVEOERFQjgxQTBGNUQ2MDVFNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHA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";
165
147
  const imgAddressLocator = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjYiIGhlaWdodD0iNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSItMzkuNzE5JSIgeTE9IjUwJSIgeDI9IjEyNi4wOTMlIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNzlBRkZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzVDOERGRiIgb2Zmc2V0PSIzMi4zNDIlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzUwN0ZGRiIgb2Zmc2V0PSI3NC44NTMlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ0NzFGRiIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTEuNSAyNGgzdjE0LjVhMS41IDEuNSAwIDAxLTMgMFYyNHoiIGZpbGw9IiM0QzgwRkYiLz48Zz48Y2lyY2xlIGZpbGw9InVybCgjcHJlZml4X19hKSIgY3g9IjEzIiBjeT0iMTMiIHI9IjEzIi8+PGNpcmNsZSBmaWxsPSIjRkZGIiBjeD0iMTMiIGN5PSIxMyIgcj0iNCIvPjwvZz48L2c+PC9zdmc+";
166
148
  const imgArrowRight = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMSAxbDQgNC00IDQiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIG9wYWNpdHk9Ii44Ii8+PC9zdmc+";
@@ -178,7 +160,7 @@ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
178
160
  var nativeObjectToString$1 = objectProto$4.toString;
179
161
  var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
180
162
  function getRawTag(value) {
181
- var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1];
163
+ var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag2 = value[symToStringTag$1];
182
164
  try {
183
165
  value[symToStringTag$1] = void 0;
184
166
  var unmasked = true;
@@ -187,7 +169,7 @@ function getRawTag(value) {
187
169
  var result = nativeObjectToString$1.call(value);
188
170
  if (unmasked) {
189
171
  if (isOwn) {
190
- value[symToStringTag$1] = tag;
172
+ value[symToStringTag$1] = tag2;
191
173
  } else {
192
174
  delete value[symToStringTag$1];
193
175
  }
@@ -281,8 +263,8 @@ function isFunction(value) {
281
263
  if (!isObject(value)) {
282
264
  return false;
283
265
  }
284
- var tag = baseGetTag(value);
285
- return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
266
+ var tag2 = baseGetTag(value);
267
+ return tag2 == funcTag || tag2 == genTag || tag2 == asyncTag || tag2 == proxyTag;
286
268
  }
287
269
  var coreJsData = root$1["__core-js_shared__"];
288
270
  const coreJsData$1 = coreJsData;
@@ -1406,6 +1388,27 @@ createComparator(function() {
1406
1388
  });
1407
1389
  createComparator(createCircularEqualCreator());
1408
1390
  createComparator(createCircularEqualCreator(sameValueZeroEqual));
1391
+ const MAX_ANIMATION_DISTANCE_VW = 300;
1392
+ const MIN_ANIMATION_DURATION = 300;
1393
+ const ANIMATION_DURATION_FOR_100VW = 200;
1394
+ const ANIMATION_DURATION_PER_ZOOM = 400;
1395
+ const BEIJIN_POINT = [116.2317, 39.5427];
1396
+ const MAX_DEVIATION_DISTANCE = 30;
1397
+ const CAR_DISTANCE_MIN = 100;
1398
+ const ZINDEX_BUBBLE_LAYER = 50;
1399
+ const ZINDEX_START_END_LOGO_LAYER = 40;
1400
+ const ZINDEX_PLACE_LAYER = 30;
1401
+ const ZINDEX_CAR_LAYER = 21;
1402
+ const ZINDEX_PASSENGER_LAYER = 20;
1403
+ const ZINDEX_AUXILIARY_GRASP = 14;
1404
+ const ZINDEX_LINE_LAYER = 12;
1405
+ const ZINDEX_GREEN_ZONE = 10;
1406
+ const TRACKS_MATCH_MAX_LENGTH = 3;
1407
+ const REGEO_TIMEOUT = 5e3;
1408
+ const GET_RECOMMEND_PLACE_TIMEOUT = 5e3;
1409
+ const GET_DEFAULT_CENTER_PLACE_TIMEOUT = 5e3;
1410
+ const AMAP_TO_GCJ02_TIMEOUT = 2e3;
1411
+ const IS_ENABLE_AUXILIARY_GRASP_ROAD = location.search.includes("enableAuxiliaryGraspRoad");
1409
1412
  var BRWOSER_PLATFORM = /* @__PURE__ */ ((BRWOSER_PLATFORM2) => {
1410
1413
  BRWOSER_PLATFORM2["WECHAT"] = "WECHAT";
1411
1414
  BRWOSER_PLATFORM2["WECHAT_MINIPROGRAM"] = "WECHAT_MINIPROGRAM";
@@ -1760,14 +1763,12 @@ const pausableSleep = (milliSeconds) => {
1760
1763
  const pause = () => {
1761
1764
  if (isPaused || sleepDefered.state === "fulfilled")
1762
1765
  return;
1763
- console.log("pause");
1764
1766
  isPaused = true;
1765
1767
  clearTimeout(id);
1766
1768
  };
1767
1769
  const restart = () => {
1768
1770
  if (sleepDefered.state === "fulfilled")
1769
1771
  return;
1770
- console.log("restart");
1771
1772
  isPaused = false;
1772
1773
  clearTimeout(id);
1773
1774
  id = setTimeout(sleepDefered.resolve, milliSeconds);
@@ -1793,6 +1794,13 @@ const pipeTimeout = (fn, defaultValue, timeout) => {
1793
1794
  });
1794
1795
  };
1795
1796
  };
1797
+ const equalAssign = (base, target) => {
1798
+ const keys2 = /* @__PURE__ */ new Set([...Object.keys(base), ...Object.keys(target)]);
1799
+ for (const key of keys2) {
1800
+ base[key] = target[key];
1801
+ }
1802
+ return base;
1803
+ };
1796
1804
  const deepCompareEqualsForMaps = createComparator((deepEqual) => (a2, b) => {
1797
1805
  if (isLatLngLiteral(a2) && isLatLngLiteral(b)) {
1798
1806
  const result = isPlaceEqual(a2, b);
@@ -2016,9 +2024,9 @@ const GmapAdvancedMarkerView = defineSetup(function GmapAdvancedMarkerView2(prop
2016
2024
  watchPostEffectForGMapEvent(markerRef, props, handleClick, ["onClick"]);
2017
2025
  return () => null;
2018
2026
  });
2019
- const createDom = (tag, props, innerHtml) => {
2027
+ const createDom = (tag2, props, innerHtml) => {
2020
2028
  const { class: className, style, ...restProps } = props != null ? props : {};
2021
- const elm = document.createElement(tag);
2029
+ const elm = document.createElement(tag2);
2022
2030
  if (className)
2023
2031
  elm.className = className;
2024
2032
  if (style)
@@ -3800,7 +3808,6 @@ const useAmapAngle = (props) => {
3800
3808
  const { map, path } = props != null ? props : {};
3801
3809
  const [from, to] = path != null ? path : [];
3802
3810
  const value = amapComputeHeading(from, to, map);
3803
- console.log("useAmapAngle p1, p2, angle = ", from, to, value);
3804
3811
  return value;
3805
3812
  });
3806
3813
  return { angleRef, apiMapComputeHeading };
@@ -4170,9 +4177,7 @@ const InterruptableIntervalFitView = defineSetup(function InterruptableIntervalF
4170
4177
  });
4171
4178
  return () => null;
4172
4179
  });
4173
- const imgEndPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0xMiAzMGMyLjEzNCAwIDMuODYzLS44OTMgMy44NjMtMS45OTUgMC0xLjEtMS43My0xLjk5NC0zLjg2My0xLjk5NC0yLjEzNCAwLTMuODYzLjg5My0zLjg2MyAxLjk5NEM4LjEzNyAyOS4xMDcgOS44NjcgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3LjAwNmMyLjEyOCAwLS45LTMuNzQzIDUuNjIxLTYuNjQzQzE5Ljg0MiAxOC40NTMgMjIgMTQuOTUzIDIyIDEwLjk1IDIyIDQuOTAyIDE3LjA3NSAwIDExIDBTMCA0LjkwMiAwIDEwLjk1YzAgMy45MTggMi4wNjggNy4zNTYgNS4xNzcgOS4yOUMxMS43NSAyMy4yODQgOS4wNiAyNy4wMDcgMTEgMjcuMDA3di0uMDAxeiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiLz48ZyBmaWxsPSIjRkZGIj48cGF0aCBkPSJNOC44OTMgMTIuNjY2SDYuNjYzdjEuMzY1aDIuNTc0di45NTJoLTMuNjZ2LTUuNDloMy41Nzh2Ljk0Nkg2LjY2M3YxLjI5aDIuMjI5ek0xMi4yNzUgMTEuMDAxYy40MyAwIC43Ny4xNDEgMS4wMi40MjQuMjUuMjgyLjM3NS42OTMuMzc1IDEuMjMzdjIuMzI1aC0xLjA0M3YtMS45ODdjMC0uNzEtLjIzNS0xLjA2NS0uNzA1LTEuMDY1YS43MzIuNzMyIDAgMDAtLjYwMy4yODljLS4xNTMuMTkyLS4yMjkuNDYzLS4yMjkuODEzdjEuOTVoLTEuMDQzdi0zLjg4NWguOTE1Yy4wMjUuMzA1LjA0OC41MTMuMDY4LjYyMy4yNS0uNDguNjY1LS43MiAxLjI0NS0uNzJ6TTE3LjI3NyA5LjI3NmgxLjA0M3Y1LjcwN2gtLjkxNWMtLjAyNS0uMjktLjA0NS0uNDg1LS4wNi0uNTg1YTEuMzE3IDEuMzE3IDAgMDEtLjUyOS41MDcgMS41MiAxLjUyIDAgMDEtLjcwOS4xNjhjLS4zMiAwLS42MTItLjA4LS44NzctLjI0YTEuNzI0IDEuNzI0IDAgMDEtLjYzOC0uN2MtLjE2LS4zMDgtLjI0LS42NzItLjI0LTEuMDkyIDAtLjQyNS4wOC0uNzkxLjI0LTEuMDk5LjE2LS4zMDcuMzczLS41NDEuNjM4LS43MDEuMjY1LS4xNi41NTctLjI0Ljg3Ny0uMjQuMjM1IDAgLjQ1NC4wNDcuNjU3LjE0Mi4yMDIuMDk1LjM3My4yNC41MTMuNDM1VjkuMjc2em0tLjkzIDQuOTA1Yy4yNiAwIC40OC0uMDk1LjY2LS4yODUuMTgtLjE5LjI3LS40NzUuMjctLjg1NSAwLS4zNzUtLjA5LS42NTQtLjI3LS44MzZhLjg5Mi44OTIgMCAwMC0uNjYtLjI3NC44MzIuODMyIDAgMDAtLjY2My4yOTJjLS4xNjguMTk1LS4yNTEuNDY4LS4yNTEuODE4IDAgLjM1LjA4My42MjcuMjUuODMyYS44MTUuODE1IDAgMDAuNjY1LjMwOHoiLz48L2c+PC9nPjwvc3ZnPg==";
4174
4180
  const imgEndPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiAzMC4yMTVjMi4xMzQgMCAzLjg2My0uODkzIDMuODYzLTEuOTk1IDAtMS4xLTEuNzMtMS45OTQtMy44NjMtMS45OTQtMi4xMzQgMC0zLjg2My44OTMtMy44NjMgMS45OTQgMCAxLjEwMiAxLjczIDEuOTk1IDMuODYzIDEuOTk1eiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyNy4wMDZjMi4xMjggMC0uOS0zLjc0MyA1LjYyMS02LjY0M0MxOS44NDIgMTguNDUzIDIyIDE0Ljk1MyAyMiAxMC45NSAyMiA0LjkwMiAxNy4wNzUgMCAxMSAwUzAgNC45MDIgMCAxMC45NWMwIDMuOTE4IDIuMDY4IDcuMzU2IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjg0IDkuMDYgMjcuMDA3IDExIDI3LjAwN3oiIHN0cm9rZT0iI0ZGRiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSIvPjx0ZXh0IGZvbnQtZmFtaWx5PSJQaW5nRmFuZ1NDLVNlbWlib2xkLCBQaW5nRmFuZyBTQyIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjUwMCIgZmlsbD0iI0ZGRiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxLjIxNSkiPjx0c3BhbiB4PSI1IiB5PSIxNS40NDkiPue7iDwvdHNwYW4+PC90ZXh0PjwvZz48L3N2Zz4=";
4175
- const imgStartPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTIgMzBjMS45NSAwIDMuNTMyLS44MTYgMy41MzItMS44MjMgMC0xLjAwNy0xLjU4MS0xLjgyMy0zLjUzMi0xLjgyMy0xLjk1IDAtMy41MzIuODE2LTMuNTMyIDEuODIzQzguNDY4IDI5LjE4NCAxMC4wNDkgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3YzIuMTI4IDAtLjktMy43NDIgNS42MjEtNi42NDEgMy4yMjEtMS45MSA1LjM3OS01LjQxIDUuMzc5LTkuNDEyQzIyIDQuOTAxIDE3LjA3NSAwIDExIDBTMCA0LjkwMSAwIDEwLjk0N2MwIDMuOTE4IDIuMDY4IDcuMzU1IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjc3IDkuMDYgMjcgMTEgMjd6IiBzdHJva2U9IiNGRkYiIGZpbGw9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIvPjxnIGZpbGw9IiNGRkYiPjxwYXRoIGQ9Ik03LjU1IDEzLjM5M2MwIC4zNzUtLjA5Ni42OS0uMjg5Ljk0MmExLjcgMS43IDAgMDEtLjc1LjU1OGMtLjMwNy4xMi0uNjM2LjE4LS45ODYuMTgtLjUxIDAtLjk3LS4xMTgtMS4zOC0uMzU2YTEuNzI2IDEuNzI2IDAgMDEtLjgxNy0xLjAwOWwuODg1LS41MDJjLjEyLjI4LjI5NS40OTcuNTI1LjY1Mi4yMy4xNTUuNTA1LjIzMy44MjUuMjMzLjI2IDAgLjQ2Ni0uMDUzLjYxOC0uMTU4YS41Mi41MiAwIDAwLjIyOS0uNDU3LjU0Ni41NDYgMCAwMC0uMTU0LS4zOTggMS4wNzcgMS4wNzcgMCAwMC0uMzgyLS4yNDcgOC41MTUgOC41MTUgMCAwMC0uNjI3LS4yMSA2LjgwNyA2LjgwNyAwIDAxLS44Ny0uMzExIDEuNTMyIDEuNTMyIDAgMDEtLjU3Ny0uNDYyYy0uMTYtLjIwNS0uMjQtLjQ3NS0uMjQtLjgxIDAtLjM1NS4wOTQtLjY1Ni4yODEtLjkwMy4xODgtLjI0OC40MzUtLjQzMy43NDMtLjU1NWEyLjY2IDIuNjYgMCAwMS45OTMtLjE4NGMuNDg1IDAgLjkuMTEgMS4yNDUuMzMuMzQ1LjIyLjU2OC41MTcuNjY4Ljg5MmwtLjg4NS41MDNhMS4xOTUgMS4xOTUgMCAwMC0uNDA1LS41NTEgMS4xMDggMS4xMDggMCAwMC0uNjc1LS4xOTljLS4yNDUgMC0uNDQ0LjA1Ni0uNTk2LjE2OWEuNTI4LjUyOCAwIDAwLS4yMjkuNDQ2YzAgLjE0LjA0Ny4yNTYuMTQyLjM0OS4wOTUuMDkyLjIxNy4xNjcuMzY0LjIyNS4xNDguMDU3LjM0Ni4xMjMuNTk2LjE5OC4zNi4xMDUuNjU4LjIxMi44OTMuMzIuMjM1LjEwNy40MzYuMjY3LjYwNC40OC4xNjcuMjEyLjI1MS40OS4yNTEuODM1ek0xMC42OTUgMTQuNzU4Yy0uMjU1LjIxLS42MS4zMTUtMS4wNjUuMzE1LS40MiAwLS43NTktLjExLTEuMDE2LS4zMzMtLjI1OC0uMjIzLS4zODctLjYyMi0uMzg3LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNkg5LjI3djEuMTkyaDEuMTd2Ljg3OEg5LjI3djEuMzk1YzAgLjI2LjA0NS40NTcuMTM1LjU5Mi4wOS4xMzUuMjM1LjIwMy40MzUuMjAzLjE3NSAwIC4zNC0uMDUzLjQ5NS0uMTU4bC4zNi43NXpNMTIuNjEgMTEuMDAxYy41MjUgMCAuOTM1LjE0OSAxLjIzLjQ0Ni4yOTUuMjk4LjQ0My43MjEuNDQzIDEuMjcxdjIuMjY1aC0uODc4YTUuMjI5IDUuMjI5IDAgMDEtLjAxOS0uMTk4IDEuOTEzIDEuOTEzIDAgMDAtLjAzMy0uMjQ0Yy0uMTE1LjE4LS4yNjQuMzE0LS40NDcuNDAxYTEuNTI1IDEuNTI1IDAgMDEtLjY2NC4xMzFjLS4yNyAwLS41MTYtLjA0Ny0uNzM4LS4xNDJhMS4yMjEgMS4yMjEgMCAwMS0uNTI5LS40MTYgMS4wODkgMS4wODkgMCAwMS0uMTk1LS42NDljMC0uMjYuMDc0LS40ODYuMjIxLS42NzlhMS40MyAxLjQzIDAgMDEuNTk3LS40NDYgMi4xMSAyLjExIDAgMDEuODI1LS4xNThjLjI3IDAgLjU0Ny4wNDUuODMyLjEzNS0uMDE1LS41NzUtLjI2LS44NjItLjczNS0uODYyLS4zOCAwLS42NTcuMTctLjgzMi41MWwtLjc0My0uNDI4Yy4xNC0uMjkuMzU1LS41MTguNjQ1LS42ODYuMjktLjE2Ny42My0uMjUxIDEuMDItLjI1MXptLjY0NSAyLjQwN2EyLjg1IDIuODUgMCAwMC0uNjUyLS4wOWMtLjI0NSAwLS40MzUuMDQ0LS41Ny4xMzJhLjQxOC40MTggMCAwMC0uMjAzLjM3MWMwIC4xNDUuMDU0LjI1Ny4xNjEuMzM3YS42OC42OCAwIDAwLjQxNy4xMi45Ni45NiAwIDAwLjU5Mi0uMTkuNjI0LjYyNCAwIDAwLjI1NS0uNTN2LS4xNXpNMTcuMDYgMTEuMDAxYy4xNSAwIC4yOS4wMjIuNDIuMDY3LjEzLjA0NS4yMy4xMDMuMy4xNzNsLS40MDUuODAyYS43NTkuNzU5IDAgMDAtLjQ0My0uMTM1Ljc2Mi43NjIgMCAwMC0uNjQ4LjMzOGMtLjE2My4yMjUtLjI0NC41MzUtLjI0NC45M3YxLjgwN2gtMS4wNDN2LTMuODg1aC45MTVjLjAyNS4zLjA0OC41MDUuMDY4LjYxNWExLjI5IDEuMjkgMCAwMS40NS0uNTMyYy4xODUtLjEyLjM5NS0uMTguNjMtLjE4ek0yMC45NDggMTQuNzU4Yy0uMjU2LjIxLS42MS4zMTUtMS4wNjYuMzE1LS40MiAwLS43NTgtLjExLTEuMDE2LS4zMzMtLjI1Ny0uMjIzLS4zODYtLjYyMi0uMzg2LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNmgxLjA0MnYxLjE5MmgxLjE3di44NzhoLTEuMTd2MS4zOTVjMCAuMjYuMDQ1LjQ1Ny4xMzUuNTkyLjA5LjEzNS4yMzUuMjAzLjQzNS4yMDMuMTc1IDAgLjM0LS4wNTMuNDk1LS4xNThsLjM2Ljc1eiIvPjwvZz48L2c+PC9zdmc+";
4176
4181
  const imgStartPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIgMzAuMjE1YzEuOTUgMCAzLjUzMi0uODE2IDMuNTMyLTEuODIzIDAtMS4wMDctMS41ODEtMS44MjMtMy41MzItMS44MjMtMS45NSAwLTMuNTMyLjgxNi0zLjUzMiAxLjgyMyAwIDEuMDA3IDEuNTgxIDEuODIzIDMuNTMyIDEuODIzeiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyN2MyLjEyOCAwLS45LTMuNzQyIDUuNjIxLTYuNjQxIDMuMjIxLTEuOTEgNS4zNzktNS40MSA1LjM3OS05LjQxMkMyMiA0LjkwMSAxNy4wNzUgMCAxMSAwUzAgNC45MDEgMCAxMC45NDdjMCAzLjkxOCAyLjA2OCA3LjM1NSA1LjE3NyA5LjI5QzExLjc1IDIzLjI3NyA5LjA2IDI3IDExIDI3eiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMS4yMTUpIi8+PHRleHQgZm9udC1mYW1pbHk9IlBpbmdGYW5nU0MtU2VtaWJvbGQsIFBpbmdGYW5nIFNDIiBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSIjRkZGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSI+PHRzcGFuIHg9IjUiIHk9IjE1LjYyNCI+6LW3PC90c3Bhbj48L3RleHQ+PC9nPjwvc3ZnPg==";
4177
4182
  const StartEndPoint_css_ts_vanilla = "";
4178
4183
  var arrowRight = createRuntimeFn({ defaultClassName: "_4a4ovka", variantClassNames: { withArrow: { true: "_4a4ovkb", false: "_4a4ovkc" } }, defaultVariants: {}, compoundVariants: [] });
@@ -4195,7 +4200,7 @@ const AStartEndPoint = defineSetup(function AStartEndPoint2(props, {
4195
4200
  type: type2,
4196
4201
  language
4197
4202
  } = props;
4198
- const icon = type2 === "start" ? language === "zh" || language === "zh-TW" ? imgStartPoint : imgStartPointEn : language === "zh" || language === "zh-TW" ? imgEndPoint : imgEndPointEn;
4203
+ const icon = type2 === "start" ? language === "zh" || language === "zh-TW" ? imgStartPoint : ICON_START_POINT_EN_URL : language === "zh" ? imgEndPoint : language === "zh-TW" ? ICON_END_POINT_ZH_TW_URL : ICON_END_POINT_EN_URL;
4199
4204
  const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
4200
4205
  if (!description && !title)
4201
4206
  return `<img class="AStartEndPoint ${pointIcon({
@@ -4263,7 +4268,7 @@ const GStartEndPoint = defineSetup(function GStartEndPoint2(props, {
4263
4268
  type: type2,
4264
4269
  language = "zh"
4265
4270
  } = props;
4266
- const icon = type2 === "start" ? language === "zh" || language === "zh-TW" ? imgStartPoint : imgStartPointEn : language === "zh" || language === "zh-TW" ? imgEndPoint : imgEndPointEn;
4271
+ const icon = type2 === "start" ? language === "zh" || language === "zh-TW" ? imgStartPoint : ICON_START_POINT_EN_URL : language === "zh" || language === "zh-TW" ? imgEndPoint : ICON_END_POINT_EN_URL;
4267
4272
  const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
4268
4273
  if (!description && !title)
4269
4274
  return createDom("img", {
@@ -6898,27 +6903,16 @@ const useGeoLocation = (props) => {
6898
6903
  speed: 0
6899
6904
  });
6900
6905
  const positionRef = Vue.ref([coordinateRef.value.longitude, coordinateRef.value.latitude]);
6901
- window.triggerGeoError = (code) => {
6902
- onError == null ? void 0 : onError(createCustomGeolocationPositionError(Date.now().toString(), code));
6903
- };
6904
6906
  Vue.watch(
6905
6907
  () => true,
6906
6908
  (_1, _2, onCleanup) => {
6907
6909
  if (disable)
6908
6910
  return;
6909
- const logStartTime = Date.now();
6910
6911
  loading.value = true;
6911
- console.warn(`为了方便测试人员测试v4.3需求,开始请求 GPS 前提示,只会提示第一次`);
6912
- let debugFlat = true;
6913
- const debugNow = Date.now();
6912
+ const logFirstGeoResponse = createLogFirstGeoResponse();
6914
6913
  const watchId = singleGeoWatch.watchPosition(
6915
6914
  async (position) => {
6916
- if (debugFlat) {
6917
- console.warn(`获取 GPS 成功, 用时 ${(Date.now() - debugNow) / 1e3} 秒`);
6918
- debugFlat = false;
6919
- }
6920
- const duration = Date.now() - logStartTime;
6921
- spaceLog("watchPosition", "success duration, position = ", duration, position);
6915
+ logFirstGeoResponse({ success: true });
6922
6916
  const coordinate = position.coords;
6923
6917
  const wgsPoint = [position.coords.longitude, position.coords.latitude];
6924
6918
  const point = await compatibleGeoPositionTransform(wgsPoint, toGcj02);
@@ -6934,11 +6928,7 @@ const useGeoLocation = (props) => {
6934
6928
  onChange == null ? void 0 : onChange({ position: point, coordinate });
6935
6929
  },
6936
6930
  (error) => {
6937
- if (debugFlat) {
6938
- console.warn(`获取 GPS 失败, 用时 ${(Date.now() - debugNow) / 1e3} 秒`);
6939
- debugFlat = false;
6940
- }
6941
- spaceLog("watchPosition", "error.message = ", error.message);
6931
+ logFirstGeoResponse({ success: false });
6942
6932
  loading.value = false;
6943
6933
  errorRef.value = error;
6944
6934
  const position = props == null ? void 0 : props.geoDefaultPosition;
@@ -6961,6 +6951,14 @@ const useGeoLocation = (props) => {
6961
6951
  geoReady: readyRef
6962
6952
  };
6963
6953
  };
6954
+ function createLogFirstGeoResponse() {
6955
+ console.warn("开始请求 GPS 前提示");
6956
+ const startTime = Date.now();
6957
+ return createRunOnce(({ success }) => {
6958
+ const message = success ? "成功" : "失败";
6959
+ console.warn(`获取 GPS ${message}, 用时 ${(Date.now() - startTime) / 1e3} 秒`);
6960
+ });
6961
+ }
6964
6962
  const useHeycarAmap = () => {
6965
6963
  const amapRef = Vue.shallowRef();
6966
6964
  const amapElementRef = Vue.shallowRef();
@@ -7221,7 +7219,7 @@ const useAmapPlace = (props) => {
7221
7219
  async () => {
7222
7220
  await readyPromise;
7223
7221
  const resultPlace = await getPlaceByRegeo(pointRef.value);
7224
- Object.assign(place, resultPlace);
7222
+ equalAssign(place, resultPlace);
7225
7223
  onChange == null ? void 0 : onChange(resultPlace);
7226
7224
  }
7227
7225
  );
@@ -7268,7 +7266,7 @@ const useGmapPlace = (props) => {
7268
7266
  async () => {
7269
7267
  await readyPromise;
7270
7268
  const resultPlace = await getPlaceByRegeo(pointRef.value);
7271
- Object.assign(place, resultPlace);
7269
+ equalAssign(place, resultPlace);
7272
7270
  onChange == null ? void 0 : onChange(resultPlace);
7273
7271
  }
7274
7272
  );
@@ -7282,7 +7280,7 @@ function mergeGetRecommendPlaceAndGetAvailable(getRecomendPlace, getAvailable, t
7282
7280
  return function mergedGetRecommendPlace(place, context2) {
7283
7281
  const available = true;
7284
7282
  return new Promise((resolve) => {
7285
- getAvailable(place).then((value) => {
7283
+ getAvailable == null ? void 0 : getAvailable(place).then((value) => {
7286
7284
  if (!value)
7287
7285
  resolve({ available: false });
7288
7286
  });
@@ -7403,15 +7401,14 @@ const useMapRecomendPlace = (props) => {
7403
7401
  lng,
7404
7402
  lat,
7405
7403
  name: queryingPlaceName,
7406
- displayName: queryingPlaceName,
7407
- photo: void 0
7404
+ displayName: queryingPlaceName
7408
7405
  };
7409
7406
  isQueryingRef.value = true;
7410
7407
  availableRef.value = true;
7411
7408
  if (zone)
7412
7409
  zoneRef.value = void 0;
7413
7410
  placeCandidatesRef.value = [];
7414
- Object.assign(recomendPlace, { ...intermediateQueryingPlace });
7411
+ equalAssign(recomendPlace, { ...intermediateQueryingPlace });
7415
7412
  onQueryingPlace == null ? void 0 : onQueryingPlace({ ...intermediateQueryingPlace });
7416
7413
  };
7417
7414
  const updatePlace = async (point) => {
@@ -7435,7 +7432,7 @@ const useMapRecomendPlace = (props) => {
7435
7432
  forceRef.value = force;
7436
7433
  zoneRef.value = zone;
7437
7434
  placeCandidatesRef.value = candidates;
7438
- Object.assign(recomendPlace, { ...resultPlace });
7435
+ equalAssign(recomendPlace, { ...resultPlace });
7439
7436
  onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
7440
7437
  const inputPlace = { name: "", displayName: "", lng: point[0], lat: point[1] };
7441
7438
  onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace, isInZone: !!zone, isSameZone });
@@ -7477,7 +7474,7 @@ const useMapRecomendPlace = (props) => {
7477
7474
  forceRef.value = force;
7478
7475
  zoneRef.value = zone;
7479
7476
  placeCandidatesRef.value = candidates;
7480
- Object.assign(recomendPlace, { ...resultPlace });
7477
+ equalAssign(recomendPlace, { ...resultPlace });
7481
7478
  onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
7482
7479
  onChange == null ? void 0 : onChange({
7483
7480
  place: { ...resultPlace },
@@ -7502,7 +7499,7 @@ const useMapRecomendPlace = (props) => {
7502
7499
  forceRef.value = force;
7503
7500
  zoneRef.value = zone;
7504
7501
  placeCandidatesRef.value = candidates;
7505
- Object.assign(recomendPlace, { ...resultPlace });
7502
+ equalAssign(recomendPlace, { ...resultPlace });
7506
7503
  onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
7507
7504
  onChange == null ? void 0 : onChange({
7508
7505
  place: { ...resultPlace },
@@ -8036,13 +8033,13 @@ const ConditionalFittablePassengerCircle = defineSetup(function ConditionalFitta
8036
8033
  };
8037
8034
  });
8038
8035
  const usePointsLabelDirection = (props) => {
8039
- const { widthLimit, heightLimit } = props;
8036
+ const { widthLimit, getHeightLimit } = props;
8040
8037
  const mapRef = useMap();
8041
8038
  const { apiMapLngLatToVw } = useMapLngLatToVw({ mapRef });
8042
8039
  const { zoomRef } = useMapZoom({ mapRef });
8043
8040
  const diffVw = (from, to) => {
8044
- const [x1, y1] = apiMapLngLatToVw(from);
8045
- const [x2, y2] = apiMapLngLatToVw(to);
8041
+ const [x1, y1] = apiMapLngLatToVw(lnglat2point(from));
8042
+ const [x2, y2] = apiMapLngLatToVw(lnglat2point(to));
8046
8043
  return [x2 - x1, y2 - y1];
8047
8044
  };
8048
8045
  const directionsRef = Vue.ref([]);
@@ -8065,14 +8062,14 @@ const usePointsLabelDirection = (props) => {
8065
8062
  basePlace,
8066
8063
  sortedPlaces,
8067
8064
  widthLimit,
8068
- heightLimit,
8069
- distanceFn: diffVw
8065
+ getHeightLimit,
8066
+ placeDistanceFn: diffVw
8070
8067
  });
8071
8068
  const directions = createLabelDirections({
8072
- sortedPoints: noOverlapPlaces.map(place2point),
8069
+ sortedPlaces: noOverlapPlaces,
8073
8070
  widthLimit,
8074
- heightLimit,
8075
- distanceFn: diffVw
8071
+ getHeightLimit,
8072
+ placeDistanceFn: diffVw
8076
8073
  });
8077
8074
  directionsRef.value = directions;
8078
8075
  labeledPlacesRef.value = noOverlapPlaces;
@@ -8081,8 +8078,8 @@ const usePointsLabelDirection = (props) => {
8081
8078
  return { directionsRef, labeledPlacesRef, isContainBasePlaceRef };
8082
8079
  };
8083
8080
  function createLabelDirections(props) {
8084
- const { sortedPoints, widthLimit, heightLimit, distanceFn } = props;
8085
- const len = sortedPoints.length;
8081
+ const { sortedPlaces, widthLimit, getHeightLimit, placeDistanceFn } = props;
8082
+ const len = sortedPlaces.length;
8086
8083
  const result = [];
8087
8084
  const calcDirection = (isLimited2, isDoubleLimited2, prevDx2, prevDirection2, isNextLimited, dx) => {
8088
8085
  spaceLog(
@@ -8122,16 +8119,18 @@ function createLabelDirections(props) {
8122
8119
  continue;
8123
8120
  }
8124
8121
  if (idx === 0) {
8125
- const [dx2, dy2] = distanceFn(sortedPoints[idx], sortedPoints[idx + 1]);
8126
- isLimited = dx2 > -widthLimit && dx2 < widthLimit && dy2 > -heightLimit && dy2 < heightLimit;
8127
- isDoubleLimited = dx2 > -widthLimit * 2 && dx2 < widthLimit * 2 && dy2 > -heightLimit && dy2 < heightLimit;
8122
+ const [dx2, dy2] = placeDistanceFn(sortedPlaces[idx], sortedPlaces[idx + 1]);
8123
+ const heightLimit2 = getHeightLimit(sortedPlaces[idx], sortedPlaces[idx + 1]);
8124
+ isLimited = dx2 > -widthLimit && dx2 < widthLimit && dy2 > -heightLimit2 && dy2 < heightLimit2;
8125
+ isDoubleLimited = dx2 > -widthLimit * 2 && dx2 < widthLimit * 2 && dy2 > -heightLimit2 && dy2 < heightLimit2;
8128
8126
  const direction2 = !isLimited ? "right" : dx2 > 0 ? "left" : "right";
8129
8127
  result.push(direction2);
8130
8128
  prevDirection = direction2;
8131
8129
  prevDx = dx2;
8132
8130
  continue;
8133
8131
  }
8134
- const [dx, dy] = distanceFn(sortedPoints[idx], sortedPoints[idx + 1]);
8132
+ const [dx, dy] = placeDistanceFn(sortedPlaces[idx], sortedPlaces[idx + 1]);
8133
+ const heightLimit = getHeightLimit(sortedPlaces[idx], sortedPlaces[idx + 1]);
8135
8134
  const isNextLimited = dx > -widthLimit && dx < widthLimit && dy > -heightLimit && dy < heightLimit;
8136
8135
  const direction = calcDirection(
8137
8136
  isLimited,
@@ -8150,9 +8149,10 @@ function createLabelDirections(props) {
8150
8149
  return result;
8151
8150
  }
8152
8151
  function filterNoOverlapPlaces(props) {
8153
- const { basePlace, sortedPlaces, widthLimit, heightLimit, distanceFn } = props;
8152
+ const { basePlace, sortedPlaces, widthLimit, getHeightLimit, placeDistanceFn } = props;
8154
8153
  const measureOverlap = (place1, place2) => {
8155
- const [dx, dy] = distanceFn(place2point(place1), place2point(place2));
8154
+ const [dx, dy] = placeDistanceFn(place1, place2);
8155
+ const heightLimit = getHeightLimit(place1, place2);
8156
8156
  const isOverlap = dx > -widthLimit && dx < widthLimit && dy > -heightLimit && dy < heightLimit;
8157
8157
  spaceLog(
8158
8158
  "filterNoOverlapPlaces",
@@ -8169,7 +8169,7 @@ function filterNoOverlapPlaces(props) {
8169
8169
  let overlapPlaces = findRelation(nextPlaces, measureOverlap);
8170
8170
  while (overlapPlaces.length > 0) {
8171
8171
  const maxPlace = findMax(overlapPlaces, (place) => {
8172
- const [dx, dy] = distanceFn(place2point(place), place2point(basePlace));
8172
+ const [dx, dy] = placeDistanceFn(place, basePlace);
8173
8173
  return dx * dx + dy * dy;
8174
8174
  });
8175
8175
  nextPlaces = nextPlaces.filter((place) => !isPlaceEqual(maxPlace, place));
@@ -8247,15 +8247,20 @@ var labelLayout = "fhyw8b";
8247
8247
  var labelStroke = "fhyw8d fhyw8c";
8248
8248
  var placeCircleLayout = createRuntimeFn({ defaultClassName: "fhyw80", variantClassNames: { textAlign: { left: "fhyw81", right: "fhyw82" } }, defaultVariants: {}, compoundVariants: [] });
8249
8249
  var placeIcon = createRuntimeFn({ defaultClassName: "fhyw88", variantClassNames: { hideIcon: { true: "fhyw89", false: "fhyw8a" } }, defaultVariants: {}, compoundVariants: [] });
8250
+ var tag = createRuntimeFn({ defaultClassName: "fhyw8e", variantClassNames: { textAlign: { left: "fhyw8f", right: "fhyw8g" } }, defaultVariants: {}, compoundVariants: [] });
8250
8251
  const DEFAULT_TEXT_ALIGN = "right";
8251
8252
  const APlaceCircle = defineSetup(function APlaceCircle2(props, {
8252
8253
  emit
8253
8254
  }) {
8254
8255
  const contentRef = Vue.computed(() => {
8255
8256
  const {
8257
+ tag: tag$1,
8256
8258
  hideIcon = false,
8257
8259
  textAlign = DEFAULT_TEXT_ALIGN
8258
8260
  } = props;
8261
+ const tagArea = tag$1 ? `<div class="${tag({
8262
+ textAlign
8263
+ })}">${tag$1}</div>` : "";
8259
8264
  return `
8260
8265
  <div class="APlaceCircle ${placeCircleLayout({
8261
8266
  textAlign
@@ -8268,6 +8273,7 @@ const APlaceCircle = defineSetup(function APlaceCircle2(props, {
8268
8273
  <div class="${labelLayout}">
8269
8274
  <div class="${labelStroke}">${props.label}</div>
8270
8275
  <div class="${label}">${props.label}</div>
8276
+ ${tagArea}
8271
8277
  </div>
8272
8278
  </div>
8273
8279
  `;
@@ -8308,9 +8314,13 @@ const GPlaceCircle = defineSetup(function GPlaceCircle2(props, {
8308
8314
  }) {
8309
8315
  const contentRef = Vue.computed(() => {
8310
8316
  const {
8317
+ tag: tag$1,
8311
8318
  hideIcon = false,
8312
8319
  textAlign = DEFAULT_TEXT_ALIGN
8313
8320
  } = props;
8321
+ const tagArea = tag$1 ? `<div class="${tag({
8322
+ textAlign
8323
+ })}">${tag$1}</div>` : "";
8314
8324
  return createDom("div", {
8315
8325
  class: `GPlaceCircle ${placeCircleLayout({
8316
8326
  textAlign
@@ -8324,6 +8334,7 @@ const GPlaceCircle = defineSetup(function GPlaceCircle2(props, {
8324
8334
  <div class="${labelLayout}">
8325
8335
  <div class="${labelStroke}">${props.label}</div>
8326
8336
  <div class="${label}">${props.label}</div>
8337
+ ${tagArea}
8327
8338
  </div>
8328
8339
  `);
8329
8340
  });
@@ -8368,6 +8379,9 @@ const PlaceCircle = defineSetup(function PlaceCircle2(props, {
8368
8379
  });
8369
8380
  };
8370
8381
  });
8382
+ const REGULAR_PLACE_WIDTH_LIMIT = 34;
8383
+ const REGULAR_PLACE_HEIGHT_LIMIT = 9;
8384
+ const TAGED_PLACE_HEIGHT_LIMIT = 14;
8371
8385
  const PickupPoints = defineSetup(function PickupPoints2(props, {
8372
8386
  emit
8373
8387
  }) {
@@ -8377,6 +8391,10 @@ const PickupPoints = defineSetup(function PickupPoints2(props, {
8377
8391
  } = useMapZoom({
8378
8392
  mapRef
8379
8393
  });
8394
+ const getHeightLimit = (place) => {
8395
+ var _a;
8396
+ return ((_a = props.renderPlaceTag) == null ? void 0 : _a.call(props, place)) ? TAGED_PLACE_HEIGHT_LIMIT : REGULAR_PLACE_HEIGHT_LIMIT;
8397
+ };
8380
8398
  const {
8381
8399
  directionsRef,
8382
8400
  labeledPlacesRef,
@@ -8384,23 +8402,26 @@ const PickupPoints = defineSetup(function PickupPoints2(props, {
8384
8402
  } = usePointsLabelDirection(Vue.reactive({
8385
8403
  basePlace: Vue.toRef(props, "basePlace"),
8386
8404
  places: Vue.toRef(props, "places"),
8387
- heightLimit: 9,
8388
- widthLimit: 34,
8405
+ getHeightLimit,
8406
+ widthLimit: REGULAR_PLACE_WIDTH_LIMIT,
8389
8407
  skip: Vue.toRef(props, "noLabel")
8390
8408
  }));
8391
8409
  return () => {
8392
8410
  const {
8393
8411
  basePlace,
8394
8412
  zoomIconMin,
8395
- zoomTextMin
8413
+ zoomTextMin,
8414
+ renderPlaceTag
8396
8415
  } = props;
8397
8416
  return Vue.h("div", [zoomRef.value >= zoomIconMin && labeledPlacesRef.value.map((place, idx) => {
8398
8417
  const label2 = zoomRef.value < zoomTextMin ? void 0 : place.displayName;
8418
+ const tag2 = zoomRef.value < zoomTextMin ? void 0 : renderPlaceTag == null ? void 0 : renderPlaceTag(place);
8399
8419
  const direction = label2 ? directionsRef.value[idx] : "right";
8400
8420
  return Vue.h(PlaceCircle, {
8401
8421
  "attrs": {
8402
8422
  "position": place2point(place),
8403
8423
  "label": label2,
8424
+ "tag": tag2,
8404
8425
  "textAlign": direction
8405
8426
  },
8406
8427
  "on": {
@@ -8439,7 +8460,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8439
8460
  getDefaultCenterPlace,
8440
8461
  mapContext
8441
8462
  } = props;
8442
- const pipedGetAvailable = pipeOnlyLastEffect(getAvailable);
8463
+ const pipedGetAvailable = getAvailable ? pipeOnlyLastEffect(getAvailable) : void 0;
8443
8464
  const pipedGetRecomendPlace = pipeOnlyLastEffect(getRecomendPlace);
8444
8465
  const {
8445
8466
  mapRef,
@@ -8474,7 +8495,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8474
8495
  var _a2;
8475
8496
  centerSource.source = (_a2 = context2 == null ? void 0 : context2.source) != null ? _a2 : "api";
8476
8497
  const place = toPlaceType(input);
8477
- Object.assign(centerPlace, place);
8498
+ equalAssign(centerPlace, place);
8478
8499
  updateRecommendPlaceOnlyInZone(place);
8479
8500
  };
8480
8501
  const setCenterPlaceByUserSpecifiedInZone = async ({
@@ -8483,11 +8504,10 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8483
8504
  }) => {
8484
8505
  const place = toPlaceType(inputPlace);
8485
8506
  const recommends = toRecommendZonePlacesType(inputRecommends);
8486
- spaceLog("setCenterPlaceByUserSpecifiedInZone", "place, recommends.places = ", JSON.stringify(place), JSON.stringify(recommends.places));
8487
8507
  const isSameZone = recommends.zone && isZoneEqual(recommends.zone, zoneRef.value);
8488
8508
  if (!isSameZone)
8489
8509
  setZoom(ZONE_ZOOM);
8490
- Object.assign(centerPlace, place);
8510
+ equalAssign(centerPlace, place);
8491
8511
  setPlaceCandidatesAndZone(recommends);
8492
8512
  emit("changePlace", {
8493
8513
  ...place
@@ -8496,11 +8516,10 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8496
8516
  const panToCenterByPlace = async (place) => {
8497
8517
  centerSource.source = "api";
8498
8518
  await panTo(place2point(place));
8499
- Object.assign(centerPlace, place);
8519
+ equalAssign(centerPlace, place);
8500
8520
  emit("changePlace", {
8501
8521
  ...place
8502
8522
  });
8503
- console.log("changeRecomandPlace inputPlace, place = ", JSON.stringify(place));
8504
8523
  emit("changeRecomandPlace", {
8505
8524
  place: {
8506
8525
  ...place
@@ -8603,7 +8622,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8603
8622
  throw new Error(`MyError: should not call getLimit on source: ${source}`);
8604
8623
  }
8605
8624
  },
8606
- onQueryingPlace: (place) => Object.assign(centerPlace, {
8625
+ onQueryingPlace: (place) => equalAssign(centerPlace, {
8607
8626
  ...place
8608
8627
  }),
8609
8628
  onChangePlace: (place) => emit("changePlace", place),
@@ -8616,7 +8635,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8616
8635
  centerSource.source = "recomend";
8617
8636
  if (isPlaceEqual(place, centerPlace))
8618
8637
  panTo(place2point(place));
8619
- Object.assign(centerPlace, {
8638
+ equalAssign(centerPlace, {
8620
8639
  ...place
8621
8640
  });
8622
8641
  if (isInZone && !isSameZone)
@@ -8640,20 +8659,20 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8640
8659
  Vue.watchEffect(() => {
8641
8660
  const centerPlaceStatus = geoLoading.value ? CenterPlaceStatus.GEO_LOADING : isQueryingRef.value ? CenterPlaceStatus.QUERYING_INFO : !availableRef.value ? CenterPlaceStatus.SERVICE_UNAVAILABLE : CenterPlaceStatus.OK;
8642
8661
  mapContext.centerPlaceStatusRef.value = centerPlaceStatus;
8643
- console.log("centerPlaceStatus = ", centerPlaceStatus);
8644
8662
  });
8645
8663
  return () => {
8646
- var _a2, _b2;
8664
+ var _a2, _b2, _c;
8647
8665
  const {
8648
8666
  geoLoadingTitle: geoLoadingTitle2,
8649
8667
  recomendDescription,
8650
8668
  unavailableTitle,
8651
8669
  disableLocator,
8652
- disableLocatorPhoto
8670
+ renderPlacePhoto,
8671
+ renderPlaceTag
8653
8672
  } = props;
8654
8673
  const isElected = isPlacesInclude(placeCandidates.value, centerPlace);
8655
8674
  const title = geoLoading.value ? geoLoadingTitle2 : !availableRef.value ? unavailableTitle : centerPlace.displayName;
8656
- const description = !availableRef.value ? void 0 : isElected ? recomendDescription : void 0;
8675
+ const description = !availableRef.value ? void 0 : isElected ? (_a2 = renderPlaceTag == null ? void 0 : renderPlaceTag(centerPlace)) != null ? _a2 : recomendDescription : void 0;
8657
8676
  return Vue.h(HeycarMap, {
8658
8677
  "attrs": {
8659
8678
  "center": place2point(centerPlace),
@@ -8666,7 +8685,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8666
8685
  "attrs": {
8667
8686
  "title": title,
8668
8687
  "description": description,
8669
- "photo": disableLocatorPhoto ? void 0 : centerPlace.photo,
8688
+ "photo": renderPlacePhoto == null ? void 0 : renderPlacePhoto(centerPlace),
8670
8689
  "type": isDragging.value ? "locator" : "box",
8671
8690
  "withArrow": !disableLocator
8672
8691
  },
@@ -8676,9 +8695,9 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8676
8695
  }
8677
8696
  })
8678
8697
  }
8679
- }, [((_a2 = zoneRef.value) == null ? void 0 : _a2.path.length) && Vue.h(GreenZone, {
8698
+ }, [((_b2 = zoneRef.value) == null ? void 0 : _b2.path.length) && Vue.h(GreenZone, {
8680
8699
  "attrs": {
8681
- "path": (_b2 = zoneRef.value) == null ? void 0 : _b2.path
8700
+ "path": (_c = zoneRef.value) == null ? void 0 : _c.path
8682
8701
  }
8683
8702
  }), !geoLoading.value && !geoError.value && Vue.h(DeviceOrientation, {
8684
8703
  "attrs": {
@@ -8695,6 +8714,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8695
8714
  "basePlace": centerPlace,
8696
8715
  "places": placeCandidates.value,
8697
8716
  "noLabel": !!zoneRef.value,
8717
+ "renderPlaceTag": renderPlaceTag,
8698
8718
  "zoomIconMin": zoneRef.value ? RECOMMEND_PLACE_ZONE_ICON_MIN : RECOMMEND_PLACE_ICON_ZOOM_MIN,
8699
8719
  "zoomTextMin": zoneRef.value ? RECOMMEND_PLACE_ZONE_TEXT_MIN : RECOMMEND_PLACE_TEXT_ZOOM_MIN
8700
8720
  },
@@ -8703,7 +8723,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
8703
8723
  }
8704
8724
  })]);
8705
8725
  };
8706
- }).props(["log", "geoLoadingTitle", "emptyTitle", "queryingTitle", "geoErrorOnceNotificationKey", "geoErrorOnceNotificationInterval", "unavailableTitle", "recomendDescription", "disableLocator", "fallback", "geoDefaultPosition", "getRecomendPlace", "getAvailable", "getDefaultCenterPlace", "loading", "mapContext"]);
8726
+ }).props(["log", "geoLoadingTitle", "emptyTitle", "queryingTitle", "geoErrorOnceNotificationKey", "geoErrorOnceNotificationInterval", "unavailableTitle", "recomendDescription", "disableLocator", "fallback", "geoDefaultPosition", "getRecomendPlace", "getAvailable", "getDefaultCenterPlace", "renderPlacePhoto", "renderPlaceTag", "loading", "mapContext"]);
8707
8727
  const emptyPlace = {
8708
8728
  lng: 0,
8709
8729
  lat: 0,
@@ -8727,7 +8747,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8727
8747
  ...emptyPlace
8728
8748
  }
8729
8749
  } = props;
8730
- const pipedGetAvailable = pipeOnlyLastEffect(getAvailable);
8750
+ const pipedGetAvailable = getAvailable ? pipeOnlyLastEffect(getAvailable) : void 0;
8731
8751
  const pipedGetRecomendPlace = pipeOnlyLastEffect(getRecomendPlace);
8732
8752
  const {
8733
8753
  mapRef,
@@ -8762,7 +8782,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8762
8782
  const setCenterPlaceByUserSpecified = async (input) => {
8763
8783
  centerSource.source = "api";
8764
8784
  const place = toPlaceType(input);
8765
- Object.assign(centerPlace, place);
8785
+ equalAssign(centerPlace, place);
8766
8786
  updateRecommendPlaceOnlyInZone(place);
8767
8787
  };
8768
8788
  const setCenterPlaceByUserSpecifiedInZone = async ({
@@ -8771,11 +8791,10 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8771
8791
  }) => {
8772
8792
  const place = toPlaceType(inputPlace);
8773
8793
  const recommends = toRecommendZonePlacesType(inputRecommends);
8774
- spaceLog("setCenterPlaceByUserSpecifiedInZone", "place, recommends.places = ", JSON.stringify(place), JSON.stringify(recommends.places));
8775
8794
  const isSameZone = recommends.zone && isZoneEqual(recommends.zone, zoneRef.value);
8776
8795
  if (!isSameZone)
8777
8796
  setZoom(ZONE_ZOOM);
8778
- Object.assign(centerPlace, place);
8797
+ equalAssign(centerPlace, place);
8779
8798
  setPlaceCandidatesAndZone(recommends);
8780
8799
  emit("changePlace", {
8781
8800
  ...place
@@ -8784,7 +8803,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8784
8803
  const panToCenterByPlace = async (place) => {
8785
8804
  centerSource.source = "api";
8786
8805
  await panTo(place2point(place));
8787
- Object.assign(centerPlace, place);
8806
+ equalAssign(centerPlace, place);
8788
8807
  emit("changePlace", {
8789
8808
  ...place
8790
8809
  });
@@ -8865,7 +8884,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8865
8884
  throw new Error(`MyError: should not call getLimit on source: ${source}`);
8866
8885
  }
8867
8886
  },
8868
- onQueryingPlace: (place) => Object.assign(centerPlace, {
8887
+ onQueryingPlace: (place) => equalAssign(centerPlace, {
8869
8888
  ...place
8870
8889
  }),
8871
8890
  onChangePlace: (place) => emit("changePlace", place),
@@ -8878,7 +8897,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8878
8897
  centerSource.source = "recomend";
8879
8898
  if (isPlaceEqual(place, centerPlace))
8880
8899
  panTo(place2point(place));
8881
- Object.assign(centerPlace, {
8900
+ equalAssign(centerPlace, {
8882
8901
  ...place
8883
8902
  });
8884
8903
  if (isInZone && !isSameZone)
@@ -8904,15 +8923,16 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8904
8923
  mapContext.centerPlaceStatusRef.value = isQueryingRef.value ? CenterPlaceStatus.QUERYING_INFO : !availableRef.value ? CenterPlaceStatus.SERVICE_UNAVAILABLE : CenterPlaceStatus.OK;
8905
8924
  });
8906
8925
  return () => {
8907
- var _a, _b;
8926
+ var _a, _b, _c;
8908
8927
  const {
8909
8928
  recomendDescription,
8910
8929
  unavailableTitle,
8911
- disableLocatorPhoto
8930
+ renderPlacePhoto,
8931
+ renderPlaceTag
8912
8932
  } = props;
8913
8933
  const isElected = isPlacesInclude(placeCandidates.value, centerPlace);
8914
8934
  const title = !availableRef.value ? unavailableTitle : centerPlace.displayName;
8915
- const description = !availableRef.value ? void 0 : isElected ? recomendDescription : void 0;
8935
+ const description = !availableRef.value ? void 0 : isElected ? (_a = renderPlaceTag == null ? void 0 : renderPlaceTag(centerPlace)) != null ? _a : recomendDescription : void 0;
8916
8936
  return Vue.h(HeycarMap, {
8917
8937
  "attrs": {
8918
8938
  "center": place2point(centerPlace),
@@ -8925,7 +8945,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8925
8945
  "attrs": {
8926
8946
  "title": title,
8927
8947
  "description": description,
8928
- "photo": disableLocatorPhoto ? void 0 : centerPlace.photo,
8948
+ "photo": renderPlacePhoto == null ? void 0 : renderPlacePhoto(centerPlace),
8929
8949
  "type": isDragging.value ? "locator" : "box",
8930
8950
  "withArrow": !disableLocator
8931
8951
  },
@@ -8935,9 +8955,9 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8935
8955
  }
8936
8956
  })
8937
8957
  }
8938
- }, [((_a = zoneRef.value) == null ? void 0 : _a.path.length) && Vue.h(GreenZone, {
8958
+ }, [((_b = zoneRef.value) == null ? void 0 : _b.path.length) && Vue.h(GreenZone, {
8939
8959
  "attrs": {
8940
- "path": (_b = zoneRef.value) == null ? void 0 : _b.path
8960
+ "path": (_c = zoneRef.value) == null ? void 0 : _c.path
8941
8961
  }
8942
8962
  }), !geoLoading.value && !geoError.value && Vue.h(DeviceOrientation, {
8943
8963
  "attrs": {
@@ -8962,7 +8982,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
8962
8982
  }
8963
8983
  })]);
8964
8984
  };
8965
- }).props(["loading", "fallback", "log", "defaultPlace", "unavailableTitle", "emptyTitle", "queryingTitle", "recomendDescription", "geoErrorOnceNotificationKey", "geoErrorOnceNotificationInterval", "disableLocator", "disableLocatorPhoto", "getAvailable", "getRecomendPlace", "mapContext"]);
8985
+ }).props(["loading", "fallback", "log", "defaultPlace", "unavailableTitle", "emptyTitle", "queryingTitle", "recomendDescription", "geoErrorOnceNotificationKey", "geoErrorOnceNotificationInterval", "disableLocator", "getAvailable", "getRecomendPlace", "renderPlacePhoto", "renderPlaceTag", "mapContext"]);
8966
8986
  const assertPropNoEmptyArray = (list, funcName, propName) => {
8967
8987
  if (list.length > 0)
8968
8988
  return;
@@ -9114,12 +9134,6 @@ const findClosestSublineInLineWithPartialIntersection = (targetLine, line, inclu
9114
9134
  includeIndex,
9115
9135
  distanceFn
9116
9136
  );
9117
- console.log(
9118
- "findClosestSublineInLineWithPartialIntersection from, includeIndex, to = ",
9119
- from,
9120
- includeIndex,
9121
- to
9122
- );
9123
9137
  const extendedIntersectionPoint = line[to + 1];
9124
9138
  const intersectionFromIncludePoint = findRouteIntersectionByFractionalSubRoute({
9125
9139
  from,
@@ -9258,7 +9272,6 @@ const useDeviationCorrectionDrivingRoute = (props) => {
9258
9272
  apiMapDistance,
9259
9273
  TRACKS_MATCH_MAX_LENGTH
9260
9274
  );
9261
- console.log("intersectionUniDistance = ", intersectionUniDistance);
9262
9275
  if (intersectionUniDistance >= DEVIATION_RATIO * deviation) {
9263
9276
  console.warn(
9264
9277
  `警告:纠偏距离 ${intersectionUniDistance.toFixed(2)}米 超过阈值 ${DEVIATION_RATIO * deviation}米, 重新规划路线`
@@ -9280,7 +9293,6 @@ const useDeviationCorrectionDrivingRoute = (props) => {
9280
9293
  const from = graspRoadPath[graspRoadPath.length - 1];
9281
9294
  const route = await apiMapDrivingRoute(from, to);
9282
9295
  const angle = (_b = apiMapComputeHeading(route.path[0], route.path[1])) != null ? _b : 0;
9283
- console.log("apiMapComputeHeading p1, p2 = ", route.path[0], route.path[1], angle);
9284
9296
  return { ...route, angle, graspRoadPath, baseRoute: route, index: 0 };
9285
9297
  };
9286
9298
  watchEffectForDeepOption(
@@ -11055,7 +11067,7 @@ const useBusinessRecomendPlaceMap = () => {
11055
11067
  throw new Error("MyError: setCenterPlaceByUserSpecifiedInZone used before assigned");
11056
11068
  },
11057
11069
  onChangeCenterPlace: (place) => {
11058
- Object.assign(centerPlace, { ...place });
11070
+ equalAssign(centerPlace, { ...place });
11059
11071
  },
11060
11072
  onChangeRecomendPlaces: (places) => {
11061
11073
  placeCandidates.value = [...places];