@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/README.md +306 -60
- package/dist/api/contants.d.ts +3 -0
- package/dist/business-components/GreenZone/GreenZone.d.ts +8 -0
- package/dist/business-components/GreenZone/index.d.ts +1 -0
- package/dist/hooks/useHeycarMap.d.ts +2 -2
- package/dist/hooks/useMapLngLatToVw.d.ts +14 -5
- package/dist/hooks/useMapRecomendPlace.d.ts +18 -9
- package/dist/hooks-business/useBusinessAlarm.d.ts +12 -0
- package/dist/hooks-business/useBusinessRecomendPlaceMap.d.ts +7 -1
- package/dist/index.cjs +461 -158
- package/dist/index.d.ts +1 -0
- package/dist/index.js +461 -158
- package/dist/types/interface.d.ts +9 -0
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
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
|
-
|
|
3523
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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 (
|
|
5300
|
-
availableRef.value =
|
|
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
|
|
5309
|
-
availableRef.value =
|
|
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
|
-
|
|
5457
|
+
updateRecommendPlace,
|
|
5321
5458
|
updatePlaceCandidates,
|
|
5322
5459
|
updatePlace,
|
|
5323
|
-
|
|
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
|
|
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
|
-
|
|
5346
|
-
|
|
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
|
|
5354
|
-
|
|
5355
|
-
|
|
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 =
|
|
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
|
-
|
|
5537
|
+
updateRecommendPlace,
|
|
5376
5538
|
updatePlaceCandidates,
|
|
5377
5539
|
updatePlace,
|
|
5378
|
-
|
|
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
|
|
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
|
|
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 [
|
|
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:
|
|
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:
|
|
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 =
|
|
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
|
|
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
|
-
|
|
5837
|
-
await pipeDefer(setZoom)(READY_ZOOM);
|
|
6082
|
+
updateRecommendPlace(place);
|
|
5838
6083
|
};
|
|
5839
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
5904
|
-
|
|
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
|
-
|
|
6199
|
+
updateRecommendPlace(place);
|
|
5929
6200
|
}
|
|
5930
6201
|
emit("changePlace", place);
|
|
5931
6202
|
},
|
|
5932
|
-
onChange: async (
|
|
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
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
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 ?
|
|
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
|
-
}, [
|
|
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":
|
|
6262
|
+
"click": panToCenterByPlace
|
|
5981
6263
|
}
|
|
5982
|
-
}), geoLoading.value
|
|
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
|
|
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
|
|
6318
|
-
const contentAnotherRef = Vue.computed(() => `<img
|
|
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:
|
|
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: [
|
|
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;
|