@heycar/heycars-map 0.9.1 → 0.9.3
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 +331 -312
- package/dist/index.js +331 -312
- package/dist/src/Demo/DemoBusinessTaxiEnd.d.ts +12 -2
- package/dist/src/api/contants.d.ts +3 -0
- package/dist/src/business-components/StartEndPoint/StartEndPoint.d.ts +1 -0
- package/dist/src/components/Amap/Amap.d.ts +1 -1
- package/dist/src/hooks/useMapGeometry.d.ts +3 -0
- package/dist/src/hooks/useMapLoader.d.ts +1 -1
- package/dist/src/hooks/useMapPlace.d.ts +3 -0
- package/dist/src/hooks/useMapRecomendPlace.d.ts +8 -50
- package/dist/src/hooks/useMapZoom.d.ts +2 -2
- package/dist/src/utils/helper.d.ts +4 -3
- package/dist/src/utils/transform.d.ts +4 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
9
9
|
const Vue = require("vue");
|
|
10
10
|
const style = "";
|
|
11
11
|
const name = "@heycar/heycars-map";
|
|
12
|
-
const version = "0.9.
|
|
12
|
+
const version = "0.9.3";
|
|
13
13
|
const type = "module";
|
|
14
14
|
const scripts = {
|
|
15
15
|
dev: "vite -c vite.config.dev.ts",
|
|
@@ -1100,16 +1100,24 @@ const isPlace = (place) => {
|
|
|
1100
1100
|
return place.lng !== void 0 && place.lat !== void 0;
|
|
1101
1101
|
};
|
|
1102
1102
|
const sleep = (milliSeconds) => new Promise((resolve) => setTimeout(resolve, milliSeconds));
|
|
1103
|
-
|
|
1103
|
+
function assertPoint(point) {
|
|
1104
1104
|
if (Array.isArray(point) && point.length === 2 && typeof point[0] === "number" && typeof point[1] === "number")
|
|
1105
1105
|
return;
|
|
1106
1106
|
throw new Error(`Assertion Error: expect type [number, number], actual is ${point}`);
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1107
|
+
}
|
|
1108
|
+
function assertAngle(angle) {
|
|
1109
1109
|
if (typeof angle === "number" || typeof angle === "undefined")
|
|
1110
1110
|
return;
|
|
1111
1111
|
throw new Error(`Assertion Error: expect type number | undefined, actual is ${angle}`);
|
|
1112
|
-
}
|
|
1112
|
+
}
|
|
1113
|
+
function assertZone(zone) {
|
|
1114
|
+
try {
|
|
1115
|
+
if (Array.isArray(zone == null ? void 0 : zone.path) && zone.path.every(assertPoint))
|
|
1116
|
+
return;
|
|
1117
|
+
} catch (err) {
|
|
1118
|
+
throw new Error(`Assertion Error: expect type Zone, actual is ${JSON.stringify(zone)}`);
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1113
1121
|
const isLatLngLiteral = (value) => {
|
|
1114
1122
|
return value != null && typeof value === "object" && Number.isFinite(value.lat) && Number.isFinite(value.lng);
|
|
1115
1123
|
};
|
|
@@ -1155,6 +1163,18 @@ const pausableSleep = (milliSeconds) => {
|
|
|
1155
1163
|
};
|
|
1156
1164
|
return { sleepPromise: sleepDefered, pause, restart };
|
|
1157
1165
|
};
|
|
1166
|
+
const MAX_ANIMATION_DISTANCE_VW = 100;
|
|
1167
|
+
const MIN_ANIMATION_DURATION = 400;
|
|
1168
|
+
const ANIMATION_DURATION_FOR_100VW = 800;
|
|
1169
|
+
const ANIMATION_DURATION_PER_ZOOM = 400;
|
|
1170
|
+
const BEIJIN_POINT = [116.2317, 39.5427];
|
|
1171
|
+
const ZINDEX_BUBBLE_LAYER = 50;
|
|
1172
|
+
const ZINDEX_START_END_LOGO_LAYER = 40;
|
|
1173
|
+
const ZINDEX_PLACE_LAYER = 30;
|
|
1174
|
+
const ZINDEX_CAR_LAYER = 21;
|
|
1175
|
+
const ZINDEX_PASSENGER_LAYER = 20;
|
|
1176
|
+
const ZINDEX_LINE_LAYER = 12;
|
|
1177
|
+
const ZINDEX_GREEN_ZONE = 10;
|
|
1158
1178
|
const vec2lnglat = ([lng, lat]) => ({
|
|
1159
1179
|
lng: Number(lng),
|
|
1160
1180
|
lat: Number(lat)
|
|
@@ -1226,6 +1246,9 @@ const isGeoPositionEqual = (p1, p2) => {
|
|
|
1226
1246
|
return false;
|
|
1227
1247
|
return p1.coords.longitude === p2.coords.longitude && p1.coords.latitude === p2.coords.latitude;
|
|
1228
1248
|
};
|
|
1249
|
+
const isZoneEqual = (z1, z2) => {
|
|
1250
|
+
return z1.path.every((point, idx) => isPointEqual(point, z2 == null ? void 0 : z2.path[idx]));
|
|
1251
|
+
};
|
|
1229
1252
|
const amapPlaceName2DisplayName = (name2, options) => {
|
|
1230
1253
|
const { isChina, province, city, district, township } = options;
|
|
1231
1254
|
if (!name2)
|
|
@@ -1240,6 +1263,12 @@ const amapPlaceName2DisplayName = (name2, options) => {
|
|
|
1240
1263
|
}
|
|
1241
1264
|
return result;
|
|
1242
1265
|
};
|
|
1266
|
+
const distanceVw2animationDuration = (distance) => {
|
|
1267
|
+
return Math.max(MIN_ANIMATION_DURATION, ANIMATION_DURATION_FOR_100VW * distance / 100);
|
|
1268
|
+
};
|
|
1269
|
+
const deltaZoom2animationDuration = (deltaZoom) => {
|
|
1270
|
+
return Math.max(MIN_ANIMATION_DURATION * 4, Math.abs(deltaZoom) * ANIMATION_DURATION_PER_ZOOM);
|
|
1271
|
+
};
|
|
1243
1272
|
const toPlaceType = (maybePlace) => {
|
|
1244
1273
|
var _a;
|
|
1245
1274
|
const lng = Number(maybePlace.lng);
|
|
@@ -2245,15 +2274,6 @@ function detectWebGL() {
|
|
|
2245
2274
|
}
|
|
2246
2275
|
return "NOT_SUPPORTED";
|
|
2247
2276
|
}
|
|
2248
|
-
const MAX_ANIMATION_DISTANCE_VW = 100;
|
|
2249
|
-
const BEIJIN_POINT = [116.2317, 39.5427];
|
|
2250
|
-
const ZINDEX_BUBBLE_LAYER = 50;
|
|
2251
|
-
const ZINDEX_START_END_LOGO_LAYER = 40;
|
|
2252
|
-
const ZINDEX_PLACE_LAYER = 30;
|
|
2253
|
-
const ZINDEX_CAR_LAYER = 21;
|
|
2254
|
-
const ZINDEX_PASSENGER_LAYER = 20;
|
|
2255
|
-
const ZINDEX_LINE_LAYER = 12;
|
|
2256
|
-
const ZINDEX_GREEN_ZONE = 10;
|
|
2257
2277
|
const useAmapLngLatToVw = (props) => {
|
|
2258
2278
|
const apiMapLngLatToVw = (point) => {
|
|
2259
2279
|
const amap2 = props.mapRef.value;
|
|
@@ -2389,8 +2409,13 @@ const Amap = defineSetup(function Amap2(props, { slots, emit }) {
|
|
|
2389
2409
|
const map = mapRef.value;
|
|
2390
2410
|
if (!center || !map)
|
|
2391
2411
|
return;
|
|
2392
|
-
|
|
2393
|
-
|
|
2412
|
+
if (!prevCenter)
|
|
2413
|
+
return map.setCenter(center, true);
|
|
2414
|
+
const distanceVw = apiMapDistanceVwOfPoints(center, prevCenter);
|
|
2415
|
+
if (distanceVw > MAX_ANIMATION_DISTANCE_VW)
|
|
2416
|
+
return map.setCenter(center, true);
|
|
2417
|
+
const duration = distanceVw2animationDuration(distanceVw);
|
|
2418
|
+
map.setCenter(center, false, duration);
|
|
2394
2419
|
}
|
|
2395
2420
|
);
|
|
2396
2421
|
Vue.watch(
|
|
@@ -3334,7 +3359,9 @@ const InterruptableIntervalFitView = defineSetup(function InterruptableIntervalF
|
|
|
3334
3359
|
});
|
|
3335
3360
|
return () => null;
|
|
3336
3361
|
});
|
|
3362
|
+
const imgEndPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0xMiAzMGMyLjEzNCAwIDMuODYzLS44OTMgMy44NjMtMS45OTUgMC0xLjEtMS43My0xLjk5NC0zLjg2My0xLjk5NC0yLjEzNCAwLTMuODYzLjg5My0zLjg2MyAxLjk5NEM4LjEzNyAyOS4xMDcgOS44NjcgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3LjAwNmMyLjEyOCAwLS45LTMuNzQzIDUuNjIxLTYuNjQzQzE5Ljg0MiAxOC40NTMgMjIgMTQuOTUzIDIyIDEwLjk1IDIyIDQuOTAyIDE3LjA3NSAwIDExIDBTMCA0LjkwMiAwIDEwLjk1YzAgMy45MTggMi4wNjggNy4zNTYgNS4xNzcgOS4yOUMxMS43NSAyMy4yODQgOS4wNiAyNy4wMDcgMTEgMjcuMDA3di0uMDAxeiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiLz48ZyBmaWxsPSIjRkZGIj48cGF0aCBkPSJNOC44OTMgMTIuNjY2SDYuNjYzdjEuMzY1aDIuNTc0di45NTJoLTMuNjZ2LTUuNDloMy41Nzh2Ljk0Nkg2LjY2M3YxLjI5aDIuMjI5ek0xMi4yNzUgMTEuMDAxYy40MyAwIC43Ny4xNDEgMS4wMi40MjQuMjUuMjgyLjM3NS42OTMuMzc1IDEuMjMzdjIuMzI1aC0xLjA0M3YtMS45ODdjMC0uNzEtLjIzNS0xLjA2NS0uNzA1LTEuMDY1YS43MzIuNzMyIDAgMDAtLjYwMy4yODljLS4xNTMuMTkyLS4yMjkuNDYzLS4yMjkuODEzdjEuOTVoLTEuMDQzdi0zLjg4NWguOTE1Yy4wMjUuMzA1LjA0OC41MTMuMDY4LjYyMy4yNS0uNDguNjY1LS43MiAxLjI0NS0uNzJ6TTE3LjI3NyA5LjI3NmgxLjA0M3Y1LjcwN2gtLjkxNWMtLjAyNS0uMjktLjA0NS0uNDg1LS4wNi0uNTg1YTEuMzE3IDEuMzE3IDAgMDEtLjUyOS41MDcgMS41MiAxLjUyIDAgMDEtLjcwOS4xNjhjLS4zMiAwLS42MTItLjA4LS44NzctLjI0YTEuNzI0IDEuNzI0IDAgMDEtLjYzOC0uN2MtLjE2LS4zMDgtLjI0LS42NzItLjI0LTEuMDkyIDAtLjQyNS4wOC0uNzkxLjI0LTEuMDk5LjE2LS4zMDcuMzczLS41NDEuNjM4LS43MDEuMjY1LS4xNi41NTctLjI0Ljg3Ny0uMjQuMjM1IDAgLjQ1NC4wNDcuNjU3LjE0Mi4yMDIuMDk1LjM3My4yNC41MTMuNDM1VjkuMjc2em0tLjkzIDQuOTA1Yy4yNiAwIC40OC0uMDk1LjY2LS4yODUuMTgtLjE5LjI3LS40NzUuMjctLjg1NSAwLS4zNzUtLjA5LS42NTQtLjI3LS44MzZhLjg5Mi44OTIgMCAwMC0uNjYtLjI3NC44MzIuODMyIDAgMDAtLjY2My4yOTJjLS4xNjguMTk1LS4yNTEuNDY4LS4yNTEuODE4IDAgLjM1LjA4My42MjcuMjUuODMyYS44MTUuODE1IDAgMDAuNjY1LjMwOHoiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
3337
3363
|
const imgEndPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiAzMC4yMTVjMi4xMzQgMCAzLjg2My0uODkzIDMuODYzLTEuOTk1IDAtMS4xLTEuNzMtMS45OTQtMy44NjMtMS45OTQtMi4xMzQgMC0zLjg2My44OTMtMy44NjMgMS45OTQgMCAxLjEwMiAxLjczIDEuOTk1IDMuODYzIDEuOTk1eiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyNy4wMDZjMi4xMjggMC0uOS0zLjc0MyA1LjYyMS02LjY0M0MxOS44NDIgMTguNDUzIDIyIDE0Ljk1MyAyMiAxMC45NSAyMiA0LjkwMiAxNy4wNzUgMCAxMSAwUzAgNC45MDIgMCAxMC45NWMwIDMuOTE4IDIuMDY4IDcuMzU2IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjg0IDkuMDYgMjcuMDA3IDExIDI3LjAwN3oiIHN0cm9rZT0iI0ZGRiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSIvPjx0ZXh0IGZvbnQtZmFtaWx5PSJQaW5nRmFuZ1NDLVNlbWlib2xkLCBQaW5nRmFuZyBTQyIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjUwMCIgZmlsbD0iI0ZGRiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxLjIxNSkiPjx0c3BhbiB4PSI1IiB5PSIxNS40NDkiPue7iDwvdHNwYW4+PC90ZXh0PjwvZz48L3N2Zz4=";
|
|
3364
|
+
const imgStartPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTIgMzBjMS45NSAwIDMuNTMyLS44MTYgMy41MzItMS44MjMgMC0xLjAwNy0xLjU4MS0xLjgyMy0zLjUzMi0xLjgyMy0xLjk1IDAtMy41MzIuODE2LTMuNTMyIDEuODIzQzguNDY4IDI5LjE4NCAxMC4wNDkgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3YzIuMTI4IDAtLjktMy43NDIgNS42MjEtNi42NDEgMy4yMjEtMS45MSA1LjM3OS01LjQxIDUuMzc5LTkuNDEyQzIyIDQuOTAxIDE3LjA3NSAwIDExIDBTMCA0LjkwMSAwIDEwLjk0N2MwIDMuOTE4IDIuMDY4IDcuMzU1IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjc3IDkuMDYgMjcgMTEgMjd6IiBzdHJva2U9IiNGRkYiIGZpbGw9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIvPjxnIGZpbGw9IiNGRkYiPjxwYXRoIGQ9Ik03LjU1IDEzLjM5M2MwIC4zNzUtLjA5Ni42OS0uMjg5Ljk0MmExLjcgMS43IDAgMDEtLjc1LjU1OGMtLjMwNy4xMi0uNjM2LjE4LS45ODYuMTgtLjUxIDAtLjk3LS4xMTgtMS4zOC0uMzU2YTEuNzI2IDEuNzI2IDAgMDEtLjgxNy0xLjAwOWwuODg1LS41MDJjLjEyLjI4LjI5NS40OTcuNTI1LjY1Mi4yMy4xNTUuNTA1LjIzMy44MjUuMjMzLjI2IDAgLjQ2Ni0uMDUzLjYxOC0uMTU4YS41Mi41MiAwIDAwLjIyOS0uNDU3LjU0Ni41NDYgMCAwMC0uMTU0LS4zOTggMS4wNzcgMS4wNzcgMCAwMC0uMzgyLS4yNDcgOC41MTUgOC41MTUgMCAwMC0uNjI3LS4yMSA2LjgwNyA2LjgwNyAwIDAxLS44Ny0uMzExIDEuNTMyIDEuNTMyIDAgMDEtLjU3Ny0uNDYyYy0uMTYtLjIwNS0uMjQtLjQ3NS0uMjQtLjgxIDAtLjM1NS4wOTQtLjY1Ni4yODEtLjkwMy4xODgtLjI0OC40MzUtLjQzMy43NDMtLjU1NWEyLjY2IDIuNjYgMCAwMS45OTMtLjE4NGMuNDg1IDAgLjkuMTEgMS4yNDUuMzMuMzQ1LjIyLjU2OC41MTcuNjY4Ljg5MmwtLjg4NS41MDNhMS4xOTUgMS4xOTUgMCAwMC0uNDA1LS41NTEgMS4xMDggMS4xMDggMCAwMC0uNjc1LS4xOTljLS4yNDUgMC0uNDQ0LjA1Ni0uNTk2LjE2OWEuNTI4LjUyOCAwIDAwLS4yMjkuNDQ2YzAgLjE0LjA0Ny4yNTYuMTQyLjM0OS4wOTUuMDkyLjIxNy4xNjcuMzY0LjIyNS4xNDguMDU3LjM0Ni4xMjMuNTk2LjE5OC4zNi4xMDUuNjU4LjIxMi44OTMuMzIuMjM1LjEwNy40MzYuMjY3LjYwNC40OC4xNjcuMjEyLjI1MS40OS4yNTEuODM1ek0xMC42OTUgMTQuNzU4Yy0uMjU1LjIxLS42MS4zMTUtMS4wNjUuMzE1LS40MiAwLS43NTktLjExLTEuMDE2LS4zMzMtLjI1OC0uMjIzLS4zODctLjYyMi0uMzg3LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNkg5LjI3djEuMTkyaDEuMTd2Ljg3OEg5LjI3djEuMzk1YzAgLjI2LjA0NS40NTcuMTM1LjU5Mi4wOS4xMzUuMjM1LjIwMy40MzUuMjAzLjE3NSAwIC4zNC0uMDUzLjQ5NS0uMTU4bC4zNi43NXpNMTIuNjEgMTEuMDAxYy41MjUgMCAuOTM1LjE0OSAxLjIzLjQ0Ni4yOTUuMjk4LjQ0My43MjEuNDQzIDEuMjcxdjIuMjY1aC0uODc4YTUuMjI5IDUuMjI5IDAgMDEtLjAxOS0uMTk4IDEuOTEzIDEuOTEzIDAgMDAtLjAzMy0uMjQ0Yy0uMTE1LjE4LS4yNjQuMzE0LS40NDcuNDAxYTEuNTI1IDEuNTI1IDAgMDEtLjY2NC4xMzFjLS4yNyAwLS41MTYtLjA0Ny0uNzM4LS4xNDJhMS4yMjEgMS4yMjEgMCAwMS0uNTI5LS40MTYgMS4wODkgMS4wODkgMCAwMS0uMTk1LS42NDljMC0uMjYuMDc0LS40ODYuMjIxLS42NzlhMS40MyAxLjQzIDAgMDEuNTk3LS40NDYgMi4xMSAyLjExIDAgMDEuODI1LS4xNThjLjI3IDAgLjU0Ny4wNDUuODMyLjEzNS0uMDE1LS41NzUtLjI2LS44NjItLjczNS0uODYyLS4zOCAwLS42NTcuMTctLjgzMi41MWwtLjc0My0uNDI4Yy4xNC0uMjkuMzU1LS41MTguNjQ1LS42ODYuMjktLjE2Ny42My0uMjUxIDEuMDItLjI1MXptLjY0NSAyLjQwN2EyLjg1IDIuODUgMCAwMC0uNjUyLS4wOWMtLjI0NSAwLS40MzUuMDQ0LS41Ny4xMzJhLjQxOC40MTggMCAwMC0uMjAzLjM3MWMwIC4xNDUuMDU0LjI1Ny4xNjEuMzM3YS42OC42OCAwIDAwLjQxNy4xMi45Ni45NiAwIDAwLjU5Mi0uMTkuNjI0LjYyNCAwIDAwLjI1NS0uNTN2LS4xNXpNMTcuMDYgMTEuMDAxYy4xNSAwIC4yOS4wMjIuNDIuMDY3LjEzLjA0NS4yMy4xMDMuMy4xNzNsLS40MDUuODAyYS43NTkuNzU5IDAgMDAtLjQ0My0uMTM1Ljc2Mi43NjIgMCAwMC0uNjQ4LjMzOGMtLjE2My4yMjUtLjI0NC41MzUtLjI0NC45M3YxLjgwN2gtMS4wNDN2LTMuODg1aC45MTVjLjAyNS4zLjA0OC41MDUuMDY4LjYxNWExLjI5IDEuMjkgMCAwMS40NS0uNTMyYy4xODUtLjEyLjM5NS0uMTguNjMtLjE4ek0yMC45NDggMTQuNzU4Yy0uMjU2LjIxLS42MS4zMTUtMS4wNjYuMzE1LS40MiAwLS43NTgtLjExLTEuMDE2LS4zMzMtLjI1Ny0uMjIzLS4zODYtLjYyMi0uMzg2LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNmgxLjA0MnYxLjE5MmgxLjE3di44NzhoLTEuMTd2MS4zOTVjMCAuMjYuMDQ1LjQ1Ny4xMzUuNTkyLjA5LjEzNS4yMzUuMjAzLjQzNS4yMDMuMTc1IDAgLjM0LS4wNTMuNDk1LS4xNThsLjM2Ljc1eiIvPjwvZz48L2c+PC9zdmc+";
|
|
3338
3365
|
const imgStartPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIgMzAuMjE1YzEuOTUgMCAzLjUzMi0uODE2IDMuNTMyLTEuODIzIDAtMS4wMDctMS41ODEtMS44MjMtMy41MzItMS44MjMtMS45NSAwLTMuNTMyLjgxNi0zLjUzMiAxLjgyMyAwIDEuMDA3IDEuNTgxIDEuODIzIDMuNTMyIDEuODIzeiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyN2MyLjEyOCAwLS45LTMuNzQyIDUuNjIxLTYuNjQxIDMuMjIxLTEuOTEgNS4zNzktNS40MSA1LjM3OS05LjQxMkMyMiA0LjkwMSAxNy4wNzUgMCAxMSAwUzAgNC45MDEgMCAxMC45NDdjMCAzLjkxOCAyLjA2OCA3LjM1NSA1LjE3NyA5LjI5QzExLjc1IDIzLjI3NyA5LjA2IDI3IDExIDI3eiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMS4yMTUpIi8+PHRleHQgZm9udC1mYW1pbHk9IlBpbmdGYW5nU0MtU2VtaWJvbGQsIFBpbmdGYW5nIFNDIiBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSIjRkZGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSI+PHRzcGFuIHg9IjUiIHk9IjE1LjYyNCI+6LW3PC90c3Bhbj48L3RleHQ+PC9nPjwvc3ZnPg==";
|
|
3339
3366
|
const StartEndPoint_css_ts_vanilla = "";
|
|
3340
3367
|
var arrowRight = createRuntimeFn({ defaultClassName: "_4a4ovka", variantClassNames: { withArrow: { true: "_4a4ovkb", false: "_4a4ovkc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
@@ -3354,9 +3381,10 @@ const AStartEndPoint = defineSetup(function AStartEndPoint2(props, {
|
|
|
3354
3381
|
withArrow = false,
|
|
3355
3382
|
title,
|
|
3356
3383
|
description,
|
|
3357
|
-
type: type2
|
|
3384
|
+
type: type2,
|
|
3385
|
+
language
|
|
3358
3386
|
} = props;
|
|
3359
|
-
const icon = type2 === "start" ? imgStartPoint : imgEndPoint;
|
|
3387
|
+
const icon = type2 === "start" ? language === "zh" ? imgStartPoint : imgStartPointEn : language === "zh" ? imgEndPoint : imgEndPointEn;
|
|
3360
3388
|
const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
|
|
3361
3389
|
if (!description && !title)
|
|
3362
3390
|
return `<img class="AStartEndPoint ${pointIcon({
|
|
@@ -3421,9 +3449,10 @@ const GStartEndPoint = defineSetup(function GStartEndPoint2(props, {
|
|
|
3421
3449
|
withArrow = false,
|
|
3422
3450
|
title,
|
|
3423
3451
|
description,
|
|
3424
|
-
type: type2
|
|
3452
|
+
type: type2,
|
|
3453
|
+
language = "zh"
|
|
3425
3454
|
} = props;
|
|
3426
|
-
const icon = type2 === "start" ? imgStartPoint : imgEndPoint;
|
|
3455
|
+
const icon = type2 === "start" ? language === "zh" ? imgStartPoint : imgStartPointEn : language === "zh" ? imgEndPoint : imgEndPointEn;
|
|
3427
3456
|
const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
|
|
3428
3457
|
if (!description && !title)
|
|
3429
3458
|
return createDom("img", {
|
|
@@ -3505,6 +3534,9 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3505
3534
|
mapRef,
|
|
3506
3535
|
renderDescription
|
|
3507
3536
|
} = props;
|
|
3537
|
+
const {
|
|
3538
|
+
language
|
|
3539
|
+
} = useMapSupplier();
|
|
3508
3540
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
3509
3541
|
const deferedSetFitView = pipeDefer(registerOverlay.setFitView);
|
|
3510
3542
|
return () => {
|
|
@@ -3533,7 +3565,8 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3533
3565
|
"position": from,
|
|
3534
3566
|
"title": fromPlace.displayName,
|
|
3535
3567
|
"description": fromDescription,
|
|
3536
|
-
"withArrow": true
|
|
3568
|
+
"withArrow": true,
|
|
3569
|
+
"language": language
|
|
3537
3570
|
},
|
|
3538
3571
|
"on": {
|
|
3539
3572
|
"click": () => emit("clickStartPoint", fromPlace)
|
|
@@ -3560,7 +3593,8 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3560
3593
|
distance,
|
|
3561
3594
|
duration
|
|
3562
3595
|
}),
|
|
3563
|
-
"withArrow": true
|
|
3596
|
+
"withArrow": true,
|
|
3597
|
+
"language": language
|
|
3564
3598
|
},
|
|
3565
3599
|
"on": {
|
|
3566
3600
|
"click": () => emit("clickEndPoint", toPlace)
|
|
@@ -3989,8 +4023,6 @@ const useGeoLocation = (props) => {
|
|
|
3989
4023
|
geoReady: readyRef
|
|
3990
4024
|
};
|
|
3991
4025
|
};
|
|
3992
|
-
const MAX_AMAP_PAN_TO_ANIMATE_DURATION = 500;
|
|
3993
|
-
const MIN_AMAP_PAN_TO_ANIMATE_DURATION = 100;
|
|
3994
4026
|
const useHeycarAmap = () => {
|
|
3995
4027
|
const amapRef = Vue.shallowRef();
|
|
3996
4028
|
const amapElementRef = Vue.shallowRef();
|
|
@@ -4007,10 +4039,7 @@ const useHeycarAmap = () => {
|
|
|
4007
4039
|
const distanceVw = apiMapDistanceVwOfPoints(value, [lng, lat]);
|
|
4008
4040
|
const shouldAnimate = distanceVw < MAX_ANIMATION_DISTANCE_VW;
|
|
4009
4041
|
if (shouldAnimate) {
|
|
4010
|
-
const duration =
|
|
4011
|
-
MIN_AMAP_PAN_TO_ANIMATE_DURATION,
|
|
4012
|
-
Math.floor(MAX_AMAP_PAN_TO_ANIMATE_DURATION * distanceVw / MAX_ANIMATION_DISTANCE_VW)
|
|
4013
|
-
);
|
|
4042
|
+
const duration = distanceVw2animationDuration(distanceVw);
|
|
4014
4043
|
amap2.panTo(value, duration);
|
|
4015
4044
|
await sleep(duration);
|
|
4016
4045
|
} else {
|
|
@@ -4136,6 +4165,49 @@ const useMapDrag = (props) => {
|
|
|
4136
4165
|
const { supplier } = useMapSupplier();
|
|
4137
4166
|
return supplier === "gmap" ? useGmapDrag(props) : useAmapDrag(props);
|
|
4138
4167
|
};
|
|
4168
|
+
const useAmapGeometry = () => {
|
|
4169
|
+
const payload = useMapSupplier();
|
|
4170
|
+
const apiMapDistance = (from, to) => {
|
|
4171
|
+
if (payload.status !== Status.SUCCESS)
|
|
4172
|
+
return void 0;
|
|
4173
|
+
return AMap.GeometryUtil.distance(from, to);
|
|
4174
|
+
};
|
|
4175
|
+
const apiMapDistanceToLine = (from, line) => {
|
|
4176
|
+
if (payload.status !== Status.SUCCESS)
|
|
4177
|
+
return void 0;
|
|
4178
|
+
return AMap.GeometryUtil.distanceToLine(from, line);
|
|
4179
|
+
};
|
|
4180
|
+
const apiMapIsPointInRing = (point, path) => {
|
|
4181
|
+
if (payload.status !== Status.SUCCESS)
|
|
4182
|
+
return void 0;
|
|
4183
|
+
return AMap.GeometryUtil.isPointInRing(point, path);
|
|
4184
|
+
};
|
|
4185
|
+
return { apiMapDistance, apiMapDistanceToLine, apiMapIsPointInRing };
|
|
4186
|
+
};
|
|
4187
|
+
const useGmapGeometry = () => {
|
|
4188
|
+
const payload = useMapSupplier();
|
|
4189
|
+
const apiMapDistance = (from, to) => {
|
|
4190
|
+
if (payload.status !== Status.SUCCESS)
|
|
4191
|
+
return void 0;
|
|
4192
|
+
return google.maps.geometry.spherical.computeDistanceBetween(vec2lnglat(from), vec2lnglat(to));
|
|
4193
|
+
};
|
|
4194
|
+
const apiMapDistanceToLine = (from, line) => {
|
|
4195
|
+
if (payload.status !== Status.SUCCESS)
|
|
4196
|
+
return void 0;
|
|
4197
|
+
return 0;
|
|
4198
|
+
};
|
|
4199
|
+
const apiMapIsPointInRing = (point, path) => {
|
|
4200
|
+
if (payload.status !== Status.SUCCESS)
|
|
4201
|
+
return void 0;
|
|
4202
|
+
const polygon = new google.maps.Polygon({ paths: path.map(vec2lnglat) });
|
|
4203
|
+
return google.maps.geometry.poly.containsLocation(vec2lnglat(point), polygon);
|
|
4204
|
+
};
|
|
4205
|
+
return { apiMapDistance, apiMapDistanceToLine, apiMapIsPointInRing };
|
|
4206
|
+
};
|
|
4207
|
+
const useMapGeometry = () => {
|
|
4208
|
+
const { supplier } = useMapSupplier();
|
|
4209
|
+
return supplier === "gmap" ? useGmapGeometry() : useAmapGeometry();
|
|
4210
|
+
};
|
|
4139
4211
|
const chinaBounds = [
|
|
4140
4212
|
[
|
|
4141
4213
|
108.03446,
|
|
@@ -5655,12 +5727,9 @@ const useAmapPlace = (props) => {
|
|
|
5655
5727
|
place.name = value.name;
|
|
5656
5728
|
place.displayName = value.displayName;
|
|
5657
5729
|
};
|
|
5658
|
-
|
|
5659
|
-
() =>
|
|
5660
|
-
async () => {
|
|
5661
|
-
await readyPromise;
|
|
5730
|
+
const getPlaceByRegeo = ([lng, lat]) => {
|
|
5731
|
+
return new Promise((resolve, reject) => {
|
|
5662
5732
|
const geocoder = new AMap.Geocoder({ lang: language === "en" ? "en" : "zh_cn" });
|
|
5663
|
-
const [lng, lat] = pointRef.value;
|
|
5664
5733
|
const isChina = inChina([lng, lat]);
|
|
5665
5734
|
geocoder.getAddress(new AMap.LngLat(lng, lat), (status, result) => {
|
|
5666
5735
|
switch (status) {
|
|
@@ -5668,30 +5737,30 @@ const useAmapPlace = (props) => {
|
|
|
5668
5737
|
const { formattedAddress, addressComponent } = result.regeocode;
|
|
5669
5738
|
const name2 = formattedAddress ? formattedAddress : emptyPlaceName;
|
|
5670
5739
|
const displayName = amapPlaceName2DisplayName(name2, { isChina, ...addressComponent });
|
|
5671
|
-
|
|
5672
|
-
place.displayName = displayName;
|
|
5673
|
-
place.lng = lng;
|
|
5674
|
-
place.lat = lat;
|
|
5675
|
-
onChange == null ? void 0 : onChange({ lng, lat, name: name2, displayName });
|
|
5740
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5676
5741
|
return;
|
|
5677
5742
|
}
|
|
5678
5743
|
case "no_data": {
|
|
5679
5744
|
const name2 = emptyPlaceName;
|
|
5680
5745
|
const displayName = emptyPlaceName;
|
|
5681
|
-
|
|
5682
|
-
place.displayName = displayName;
|
|
5683
|
-
place.lng = lng;
|
|
5684
|
-
place.lat = lat;
|
|
5685
|
-
onChange == null ? void 0 : onChange({ lng, lat, name: name2, displayName });
|
|
5746
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5686
5747
|
return;
|
|
5687
5748
|
}
|
|
5688
5749
|
case "error":
|
|
5689
|
-
|
|
5750
|
+
reject(result);
|
|
5690
5751
|
}
|
|
5691
5752
|
});
|
|
5753
|
+
});
|
|
5754
|
+
};
|
|
5755
|
+
Vue.watch(
|
|
5756
|
+
() => [placeKey.value],
|
|
5757
|
+
async () => {
|
|
5758
|
+
await readyPromise;
|
|
5759
|
+
const resultPlace = await getPlaceByRegeo(pointRef.value);
|
|
5760
|
+
onChange == null ? void 0 : onChange(resultPlace);
|
|
5692
5761
|
}
|
|
5693
5762
|
);
|
|
5694
|
-
return { place, updatePlace, setPlace };
|
|
5763
|
+
return { place, updatePlace, setPlace, getPlaceByRegeo };
|
|
5695
5764
|
};
|
|
5696
5765
|
const useGmapPlace = (props) => {
|
|
5697
5766
|
const { onChange, emptyPlaceName } = props;
|
|
@@ -5715,214 +5784,182 @@ const useGmapPlace = (props) => {
|
|
|
5715
5784
|
place.name = value.name;
|
|
5716
5785
|
place.displayName = value.displayName;
|
|
5717
5786
|
};
|
|
5787
|
+
const getPlaceByRegeo = ([lng, lat]) => {
|
|
5788
|
+
return new Promise((resolve, reject) => {
|
|
5789
|
+
const geocoder = new google.maps.Geocoder();
|
|
5790
|
+
geocoder.geocode({ language, location: { lng, lat } }).then(({ results }) => {
|
|
5791
|
+
const name2 = results[0].formatted_address ? results[0].formatted_address : emptyPlaceName;
|
|
5792
|
+
const displayName = name2;
|
|
5793
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5794
|
+
}).catch(reject);
|
|
5795
|
+
});
|
|
5796
|
+
};
|
|
5718
5797
|
Vue.watch(
|
|
5719
5798
|
() => placeKey.value,
|
|
5720
5799
|
async () => {
|
|
5721
5800
|
await readyPromise;
|
|
5722
|
-
const
|
|
5723
|
-
|
|
5724
|
-
const { results } = await geocoder.geocode({ language, location: { lng, lat } });
|
|
5725
|
-
const name2 = results[0].formatted_address ? results[0].formatted_address : emptyPlaceName;
|
|
5726
|
-
const displayName = name2;
|
|
5727
|
-
place.lng = lng;
|
|
5728
|
-
place.lat = lat;
|
|
5729
|
-
place.name = name2;
|
|
5730
|
-
place.displayName = displayName;
|
|
5731
|
-
onChange == null ? void 0 : onChange({ lng, lat, name: name2, displayName });
|
|
5801
|
+
const resultPlace = await getPlaceByRegeo(pointRef.value);
|
|
5802
|
+
onChange == null ? void 0 : onChange(resultPlace);
|
|
5732
5803
|
}
|
|
5733
5804
|
);
|
|
5734
|
-
return { place, updatePlace, setPlace };
|
|
5805
|
+
return { place, updatePlace, setPlace, getPlaceByRegeo };
|
|
5735
5806
|
};
|
|
5736
5807
|
const useMapPlace = (props) => {
|
|
5737
5808
|
const { supplier } = useMapSupplier();
|
|
5738
5809
|
return supplier === "gmap" ? useGmapPlace(props) : useAmapPlace(props);
|
|
5739
5810
|
};
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
let shortestPlace = place;
|
|
5743
|
-
for (const candidate of candidates) {
|
|
5744
|
-
const distance = AMap.GeometryUtil.distance(place2point(place), place2point(candidate));
|
|
5745
|
-
if (distance >= shortestDistance)
|
|
5746
|
-
continue;
|
|
5747
|
-
shortestPlace = candidate;
|
|
5748
|
-
shortestDistance = distance;
|
|
5749
|
-
}
|
|
5750
|
-
return { shortestPlace, shortestDistance };
|
|
5751
|
-
};
|
|
5752
|
-
const findGmapNearestPlace = (place, candidates) => {
|
|
5811
|
+
function findNearestPlace(place, candidates, distanceFn) {
|
|
5812
|
+
var _a;
|
|
5753
5813
|
let shortestDistance = Infinity;
|
|
5754
5814
|
let shortestPlace = place;
|
|
5755
5815
|
for (const candidate of candidates) {
|
|
5756
|
-
const distance =
|
|
5816
|
+
const distance = (_a = distanceFn(place2point(place), place2point(candidate))) != null ? _a : Infinity;
|
|
5757
5817
|
if (distance >= shortestDistance)
|
|
5758
5818
|
continue;
|
|
5759
5819
|
shortestPlace = candidate;
|
|
5760
5820
|
shortestDistance = distance;
|
|
5761
5821
|
}
|
|
5762
5822
|
return { shortestPlace, shortestDistance };
|
|
5763
|
-
}
|
|
5764
|
-
const
|
|
5765
|
-
const {
|
|
5823
|
+
}
|
|
5824
|
+
const useMapRecomendPlace = (props) => {
|
|
5825
|
+
const {
|
|
5826
|
+
defaultPoint,
|
|
5827
|
+
getRecomendPlace,
|
|
5828
|
+
getLimit,
|
|
5829
|
+
context: context2,
|
|
5830
|
+
emptyPlaceName,
|
|
5831
|
+
onChange,
|
|
5832
|
+
onChangePlace
|
|
5833
|
+
} = props;
|
|
5766
5834
|
const availableRef = Vue.ref(true);
|
|
5767
5835
|
const placeCandidatesRef = Vue.ref([]);
|
|
5768
5836
|
const zoneRef = Vue.ref();
|
|
5769
|
-
const {
|
|
5770
|
-
const {
|
|
5771
|
-
const { place, updatePlace, setPlace } = useAmapPlace({
|
|
5837
|
+
const { apiMapIsPointInRing, apiMapDistance } = useMapGeometry();
|
|
5838
|
+
const { getPlaceByRegeo } = useAmapPlace({
|
|
5772
5839
|
emptyPlaceName,
|
|
5773
|
-
pointRef
|
|
5774
|
-
|
|
5840
|
+
pointRef: Vue.ref([...defaultPoint])
|
|
5841
|
+
});
|
|
5842
|
+
const recomendPlace = Vue.reactive({
|
|
5843
|
+
lng: defaultPoint[0],
|
|
5844
|
+
lat: defaultPoint[1],
|
|
5845
|
+
name: "",
|
|
5846
|
+
displayName: ""
|
|
5775
5847
|
});
|
|
5776
|
-
const recomendPlace = Vue.reactive({ ...place });
|
|
5777
5848
|
const isElectedRef = Vue.computed(() => {
|
|
5778
|
-
const
|
|
5849
|
+
const recomendPoint = place2point(recomendPlace);
|
|
5779
5850
|
return placeCandidatesRef.value.some(
|
|
5780
|
-
(candidate) => isPointEqual(place2point(candidate),
|
|
5851
|
+
(candidate) => isPointEqual(place2point(candidate), recomendPoint)
|
|
5781
5852
|
);
|
|
5782
5853
|
});
|
|
5783
|
-
const
|
|
5854
|
+
const findAttachedPlace = async (place) => {
|
|
5784
5855
|
var _a;
|
|
5785
5856
|
const {
|
|
5786
5857
|
places: inputPlaceCandidates,
|
|
5787
5858
|
zone,
|
|
5788
|
-
available
|
|
5789
|
-
} = (_a = await getRecomendPlace({ ...
|
|
5859
|
+
available = false
|
|
5860
|
+
} = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5790
5861
|
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5862
|
+
if (!available || !placeCandidates) {
|
|
5863
|
+
return { place: { ...place }, zone, candidates: [], available };
|
|
5864
|
+
}
|
|
5865
|
+
const { shortestPlace, shortestDistance } = findNearestPlace(
|
|
5866
|
+
place,
|
|
5867
|
+
placeCandidates,
|
|
5868
|
+
apiMapDistance
|
|
5869
|
+
);
|
|
5870
|
+
const limit = getLimit(context2);
|
|
5871
|
+
const resultPlace = zone || shortestDistance <= limit ? shortestPlace : place;
|
|
5872
|
+
return { place: { ...resultPlace }, zone, candidates: placeCandidates, available };
|
|
5873
|
+
};
|
|
5874
|
+
const getRecommendPlaceZoneState = async (point, prevState) => {
|
|
5875
|
+
const zone = zoneRef.value;
|
|
5876
|
+
if (!zone || !apiMapIsPointInRing(point, zone.path)) {
|
|
5877
|
+
const reGeoPlace = await getPlaceByRegeo(point);
|
|
5878
|
+
const {
|
|
5879
|
+
place: resultPlace2,
|
|
5880
|
+
candidates,
|
|
5881
|
+
available,
|
|
5882
|
+
zone: zone2
|
|
5883
|
+
} = await findAttachedPlace(reGeoPlace);
|
|
5884
|
+
return { place: { ...resultPlace2 }, zone: zone2, available, candidates };
|
|
5885
|
+
}
|
|
5886
|
+
const [lng, lat] = point;
|
|
5887
|
+
const { shortestPlace: resultPlace } = findNearestPlace(
|
|
5888
|
+
{ lng, lat, name: "", displayName: "" },
|
|
5889
|
+
placeCandidatesRef.value,
|
|
5890
|
+
apiMapDistance
|
|
5891
|
+
);
|
|
5794
5892
|
return {
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
|
|
5893
|
+
place: { ...resultPlace },
|
|
5894
|
+
zone,
|
|
5895
|
+
available: prevState.available,
|
|
5896
|
+
candidates: prevState.candidates
|
|
5798
5897
|
};
|
|
5799
5898
|
};
|
|
5800
|
-
const
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
available
|
|
5821
|
-
} = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5822
|
-
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5823
|
-
if (!available || !placeCandidates) {
|
|
5824
|
-
availableRef.value = !!available;
|
|
5825
|
-
zoneRef.value = zone;
|
|
5826
|
-
placeCandidatesRef.value = [];
|
|
5827
|
-
Object.assign(recomendPlace, { ...place });
|
|
5828
|
-
onChange == null ? void 0 : onChange({ place: { ...place }, inputPlace: { ...place }, isInZone: !!zone });
|
|
5829
|
-
return;
|
|
5830
|
-
}
|
|
5831
|
-
const { shortestPlace, shortestDistance } = findAmapNearestPlace(place, placeCandidates);
|
|
5832
|
-
const limit = getLimit(context2);
|
|
5833
|
-
const resultPlace = zone || shortestDistance <= limit ? shortestPlace : place;
|
|
5834
|
-
availableRef.value = !!available;
|
|
5835
|
-
zoneRef.value = zone;
|
|
5836
|
-
placeCandidatesRef.value = placeCandidates;
|
|
5837
|
-
Object.assign(recomendPlace, { ...resultPlace });
|
|
5838
|
-
onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace: { ...place }, isInZone: !!zone });
|
|
5839
|
-
}
|
|
5840
|
-
);
|
|
5841
|
-
return {
|
|
5842
|
-
zoneRef,
|
|
5843
|
-
recomendPlace,
|
|
5844
|
-
placeCandidates: placeCandidatesRef,
|
|
5845
|
-
availableRef,
|
|
5846
|
-
isElectedRef,
|
|
5847
|
-
updateRecommendPlace,
|
|
5848
|
-
updatePlaceCandidates,
|
|
5849
|
-
updatePlace,
|
|
5850
|
-
setPlaceCandidatesAndZone
|
|
5899
|
+
const updatePlace = async (point) => {
|
|
5900
|
+
const {
|
|
5901
|
+
place: resultPlace,
|
|
5902
|
+
candidates,
|
|
5903
|
+
zone,
|
|
5904
|
+
available
|
|
5905
|
+
} = await getRecommendPlaceZoneState(point, {
|
|
5906
|
+
place: recomendPlace,
|
|
5907
|
+
available: availableRef.value,
|
|
5908
|
+
candidates: placeCandidatesRef.value,
|
|
5909
|
+
zone: zoneRef.value
|
|
5910
|
+
});
|
|
5911
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5912
|
+
availableRef.value = available;
|
|
5913
|
+
zoneRef.value = zone;
|
|
5914
|
+
placeCandidatesRef.value = candidates;
|
|
5915
|
+
Object.assign(recomendPlace, { ...resultPlace });
|
|
5916
|
+
onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
|
|
5917
|
+
const inputPlace = { name: "", displayName: "", lng: point[0], lat: point[1] };
|
|
5918
|
+
onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace, isInZone: !!zone, isSameZone });
|
|
5851
5919
|
};
|
|
5852
|
-
|
|
5853
|
-
const useGmapRecomendPlace = (props) => {
|
|
5854
|
-
const { pointRef, getRecomendPlace, getLimit, context: context2, emptyPlaceName, onChange, onChangePlace } = props;
|
|
5855
|
-
const availableRef = Vue.ref(true);
|
|
5856
|
-
const placeCandidatesRef = Vue.ref([]);
|
|
5857
|
-
const zoneRef = Vue.ref();
|
|
5858
|
-
const { idx: recomendPlaceKey, update: updateRecommendPlaceKey } = useUpdate();
|
|
5859
|
-
const { readyPromise } = useMapSupplier();
|
|
5860
|
-
const { place, updatePlace, setPlace } = useGmapPlace({
|
|
5861
|
-
emptyPlaceName,
|
|
5862
|
-
pointRef,
|
|
5863
|
-
onChange: onChangePlace
|
|
5864
|
-
});
|
|
5865
|
-
const recomendPlace = Vue.reactive({ ...place });
|
|
5866
|
-
const isElectedRef = Vue.computed(() => {
|
|
5867
|
-
const point = pointRef.value;
|
|
5868
|
-
return placeCandidatesRef.value.some(
|
|
5869
|
-
(candidate) => isPointEqual(place2point(candidate), point)
|
|
5870
|
-
);
|
|
5871
|
-
});
|
|
5872
|
-
const updatePlaceCandidates = async (place2) => {
|
|
5920
|
+
const updatePlaceCandidates = async (place) => {
|
|
5873
5921
|
var _a;
|
|
5874
5922
|
const {
|
|
5875
5923
|
places: inputPlaceCandidates,
|
|
5876
5924
|
zone,
|
|
5877
5925
|
available
|
|
5878
|
-
} = (_a = await getRecomendPlace({ ...
|
|
5926
|
+
} = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5927
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5879
5928
|
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5880
5929
|
availableRef.value = !!available;
|
|
5881
5930
|
zoneRef.value = zone;
|
|
5882
5931
|
placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
|
|
5883
5932
|
return {
|
|
5884
|
-
inputPlace: { ...
|
|
5933
|
+
inputPlace: { ...place },
|
|
5885
5934
|
isInZone: !!zone,
|
|
5886
|
-
place
|
|
5935
|
+
place,
|
|
5936
|
+
isSameZone
|
|
5887
5937
|
};
|
|
5888
5938
|
};
|
|
5889
|
-
const updateRecommendPlace = (
|
|
5890
|
-
|
|
5891
|
-
|
|
5939
|
+
const updateRecommendPlace = async (place) => {
|
|
5940
|
+
const { place: resultPlace, candidates, available, zone } = await findAttachedPlace(place);
|
|
5941
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5942
|
+
availableRef.value = available;
|
|
5943
|
+
zoneRef.value = zone;
|
|
5944
|
+
placeCandidatesRef.value = candidates;
|
|
5945
|
+
Object.assign(recomendPlace, { ...resultPlace });
|
|
5946
|
+
onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
|
|
5947
|
+
onChange == null ? void 0 : onChange({
|
|
5948
|
+
place: { ...resultPlace },
|
|
5949
|
+
inputPlace: { ...place },
|
|
5950
|
+
isInZone: !!zone,
|
|
5951
|
+
isSameZone
|
|
5952
|
+
});
|
|
5892
5953
|
};
|
|
5893
|
-
const setPlaceCandidatesAndZone = ({
|
|
5894
|
-
|
|
5954
|
+
const setPlaceCandidatesAndZone = ({
|
|
5955
|
+
zone,
|
|
5956
|
+
places: inputPlaceCandidates
|
|
5957
|
+
}) => {
|
|
5958
|
+
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5959
|
+
availableRef.value = true;
|
|
5895
5960
|
zoneRef.value = zone ? zone : void 0;
|
|
5961
|
+
placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
|
|
5896
5962
|
};
|
|
5897
|
-
Vue.watch(
|
|
5898
|
-
() => recomendPlaceKey.value,
|
|
5899
|
-
async () => {
|
|
5900
|
-
var _a;
|
|
5901
|
-
await readyPromise;
|
|
5902
|
-
const {
|
|
5903
|
-
places: inputPlaceCandidates,
|
|
5904
|
-
zone,
|
|
5905
|
-
available
|
|
5906
|
-
} = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5907
|
-
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5908
|
-
if (!available || !placeCandidates) {
|
|
5909
|
-
availableRef.value = !!available;
|
|
5910
|
-
zoneRef.value = zone;
|
|
5911
|
-
placeCandidatesRef.value = [];
|
|
5912
|
-
Object.assign(recomendPlace, { ...place });
|
|
5913
|
-
onChange == null ? void 0 : onChange({ place: { ...place }, inputPlace: { ...place }, isInZone: !!zone });
|
|
5914
|
-
return;
|
|
5915
|
-
}
|
|
5916
|
-
const { shortestPlace, shortestDistance } = findGmapNearestPlace(place, placeCandidates);
|
|
5917
|
-
const limit = getLimit(context2);
|
|
5918
|
-
const resultPlace = shortestDistance > limit ? place : shortestPlace;
|
|
5919
|
-
availableRef.value = !!available;
|
|
5920
|
-
zoneRef.value = zone;
|
|
5921
|
-
placeCandidatesRef.value = placeCandidates;
|
|
5922
|
-
Object.assign(recomendPlace, { ...resultPlace });
|
|
5923
|
-
onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace: { ...place }, isInZone: !!zone });
|
|
5924
|
-
}
|
|
5925
|
-
);
|
|
5926
5963
|
return {
|
|
5927
5964
|
zoneRef,
|
|
5928
5965
|
recomendPlace,
|
|
@@ -5935,20 +5972,19 @@ const useGmapRecomendPlace = (props) => {
|
|
|
5935
5972
|
setPlaceCandidatesAndZone
|
|
5936
5973
|
};
|
|
5937
5974
|
};
|
|
5938
|
-
const useMapRecomendPlace = (props) => {
|
|
5939
|
-
const { supplier } = useMapSupplier();
|
|
5940
|
-
return supplier === "gmap" ? useGmapRecomendPlace(props) : useAmapRecomendPlace(props);
|
|
5941
|
-
};
|
|
5942
5975
|
const GOOGLE_MAP_ZOOM_CHANGE_DEBOUNCE_TIMEOUT = 50;
|
|
5943
5976
|
const DEFAULT_ZOOM$1 = 13;
|
|
5944
5977
|
const useAmapZoom = (props) => {
|
|
5945
5978
|
var _a, _b, _c;
|
|
5946
5979
|
const { onChange, mapRef, defaultValue } = props;
|
|
5947
5980
|
const zoomRef = Vue.ref((_c = (_b = (_a = mapRef.value) == null ? void 0 : _a.getZoom()) != null ? _b : defaultValue) != null ? _c : DEFAULT_ZOOM$1);
|
|
5948
|
-
const setZoom = (v) => {
|
|
5949
|
-
var _a2;
|
|
5981
|
+
const setZoom = (v, immediate = false) => {
|
|
5982
|
+
var _a2, _b2;
|
|
5983
|
+
const duration = deltaZoom2animationDuration(v - zoomRef.value);
|
|
5950
5984
|
zoomRef.value = v;
|
|
5951
|
-
|
|
5985
|
+
if (immediate)
|
|
5986
|
+
return (_a2 = mapRef.value) == null ? void 0 : _a2.setZoom(v, true);
|
|
5987
|
+
(_b2 = mapRef.value) == null ? void 0 : _b2.setZoom(v, false, duration);
|
|
5952
5988
|
};
|
|
5953
5989
|
const handleZoomEnd = (_, { target }) => {
|
|
5954
5990
|
const zoom = target.getZoom();
|
|
@@ -6680,7 +6716,6 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6680
6716
|
name: geoLoadingTitle,
|
|
6681
6717
|
displayName: geoLoadingTitle
|
|
6682
6718
|
});
|
|
6683
|
-
const centerPoint = Vue.computed(() => [centerPlace.lng, centerPlace.lat]);
|
|
6684
6719
|
const centerSource = {
|
|
6685
6720
|
source: "geo"
|
|
6686
6721
|
};
|
|
@@ -6691,25 +6726,19 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6691
6726
|
const setCenterPlaceByUserSpecified = async (input) => {
|
|
6692
6727
|
centerSource.source = "api";
|
|
6693
6728
|
const place = toPlaceType(input);
|
|
6694
|
-
centerPlace
|
|
6695
|
-
centerPlace.lat = place.lat;
|
|
6696
|
-
centerPlace.name = place.name;
|
|
6697
|
-
centerPlace.displayName = place.displayName;
|
|
6698
|
-
emit("changePlace", {
|
|
6699
|
-
...place
|
|
6700
|
-
});
|
|
6729
|
+
Object.assign(centerPlace, place);
|
|
6701
6730
|
updateRecommendPlace(place);
|
|
6702
6731
|
};
|
|
6703
6732
|
const setCenterPlaceByUserSpecifiedInZone = ({
|
|
6704
|
-
place,
|
|
6733
|
+
place: input,
|
|
6705
6734
|
recommends
|
|
6706
6735
|
}) => {
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
centerPlace
|
|
6710
|
-
centerPlace.displayName = place.displayName;
|
|
6736
|
+
const place = toPlaceType(input);
|
|
6737
|
+
assertZone(recommends.zone);
|
|
6738
|
+
Object.assign(centerPlace, place);
|
|
6711
6739
|
setPlaceCandidatesAndZone(recommends);
|
|
6712
|
-
|
|
6740
|
+
if (!isZoneEqual(recommends.zone, zoneRef.value))
|
|
6741
|
+
setZoom(ZONE_ZOOM);
|
|
6713
6742
|
emit("changePlace", {
|
|
6714
6743
|
...place
|
|
6715
6744
|
});
|
|
@@ -6717,12 +6746,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6717
6746
|
const panToCenterByPlace = async (place) => {
|
|
6718
6747
|
centerSource.source = "api";
|
|
6719
6748
|
await panTo(place2point(place));
|
|
6720
|
-
centerPlace
|
|
6721
|
-
centerPlace.lat = place.lat;
|
|
6722
|
-
centerPlace.name = place.name;
|
|
6723
|
-
centerPlace.displayName = place.displayName;
|
|
6724
|
-
if (zoneRef.value)
|
|
6725
|
-
setZoom(ZONE_ZOOM);
|
|
6749
|
+
Object.assign(centerPlace, place);
|
|
6726
6750
|
emit("changePlace", {
|
|
6727
6751
|
...place
|
|
6728
6752
|
});
|
|
@@ -6733,7 +6757,8 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6733
6757
|
inputPlace: {
|
|
6734
6758
|
...place
|
|
6735
6759
|
},
|
|
6736
|
-
isInZone: !!zoneRef.value
|
|
6760
|
+
isInZone: !!zoneRef.value,
|
|
6761
|
+
isSameZone: !!zoneRef.value
|
|
6737
6762
|
});
|
|
6738
6763
|
};
|
|
6739
6764
|
const defaultCenterPlacePromise = new Promise((resolve) => {
|
|
@@ -6751,18 +6776,21 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6751
6776
|
} = useGeoLocation({
|
|
6752
6777
|
geoDefaultPosition,
|
|
6753
6778
|
onLoad: async (value) => {
|
|
6779
|
+
const [lng, lat] = value.position;
|
|
6754
6780
|
await readyPromise;
|
|
6755
6781
|
centerSource.source = "geo";
|
|
6782
|
+
centerPlace.lng = lng;
|
|
6783
|
+
centerPlace.lat = lat;
|
|
6756
6784
|
updatePlace(value.position);
|
|
6757
6785
|
emit("loadGeoLocation", value);
|
|
6758
6786
|
},
|
|
6759
6787
|
onLoadDefault: async (value) => {
|
|
6760
6788
|
await readyPromise;
|
|
6761
|
-
const
|
|
6789
|
+
const inputPlace = await defaultCenterPlacePromise;
|
|
6762
6790
|
centerSource.source = "geo";
|
|
6763
6791
|
emit("loadDefaultGeoLocation", value);
|
|
6764
|
-
if (
|
|
6765
|
-
await setCenterPlaceByUserSpecified(
|
|
6792
|
+
if (inputPlace) {
|
|
6793
|
+
await setCenterPlaceByUserSpecified(inputPlace);
|
|
6766
6794
|
} else {
|
|
6767
6795
|
updatePlace(value.position);
|
|
6768
6796
|
}
|
|
@@ -6797,7 +6825,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6797
6825
|
availableRef,
|
|
6798
6826
|
isElectedRef
|
|
6799
6827
|
} = useMapRecomendPlace({
|
|
6800
|
-
|
|
6828
|
+
defaultPoint: place2point(centerPlace),
|
|
6801
6829
|
emptyPlaceName: DEFAULT_PLACE_NAME,
|
|
6802
6830
|
context: centerSource,
|
|
6803
6831
|
getRecomendPlace: pipedGetRecomendPlace,
|
|
@@ -6814,29 +6842,27 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6814
6842
|
throw new Error(`MyError: should not call getLimit on source: ${source}`);
|
|
6815
6843
|
}
|
|
6816
6844
|
},
|
|
6817
|
-
onChangePlace: (place) =>
|
|
6818
|
-
if (centerSource.source !== "recomend") {
|
|
6819
|
-
updateRecommendPlace(place);
|
|
6820
|
-
}
|
|
6821
|
-
emit("changePlace", place);
|
|
6822
|
-
},
|
|
6845
|
+
onChangePlace: (place) => emit("changePlace", place),
|
|
6823
6846
|
onChange: async ({
|
|
6824
6847
|
place,
|
|
6825
6848
|
inputPlace,
|
|
6826
|
-
isInZone
|
|
6849
|
+
isInZone,
|
|
6850
|
+
isSameZone
|
|
6827
6851
|
}) => {
|
|
6852
|
+
debugger;
|
|
6828
6853
|
centerSource.source = "recomend";
|
|
6829
6854
|
if (isPlaceEqual(place, centerPlace))
|
|
6830
6855
|
panTo(place2point(place));
|
|
6831
6856
|
Object.assign(centerPlace, {
|
|
6832
6857
|
...place
|
|
6833
6858
|
});
|
|
6834
|
-
if (isInZone)
|
|
6859
|
+
if (isInZone && !isSameZone)
|
|
6835
6860
|
setZoom(ZONE_ZOOM);
|
|
6836
6861
|
emit("changeRecomandPlace", {
|
|
6837
6862
|
place,
|
|
6838
6863
|
inputPlace,
|
|
6839
|
-
isInZone
|
|
6864
|
+
isInZone,
|
|
6865
|
+
isSameZone
|
|
6840
6866
|
});
|
|
6841
6867
|
}
|
|
6842
6868
|
});
|
|
@@ -6859,7 +6885,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6859
6885
|
const description = !availableRef.value ? void 0 : isElectedRef.value ? recomendDescription : void 0;
|
|
6860
6886
|
return Vue.h(HeycarMap, {
|
|
6861
6887
|
"attrs": {
|
|
6862
|
-
"center":
|
|
6888
|
+
"center": place2point(centerPlace),
|
|
6863
6889
|
"zoom": zoomRef.value,
|
|
6864
6890
|
"touchZoomCenter": true,
|
|
6865
6891
|
"mapRef": setMap,
|
|
@@ -6935,7 +6961,6 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6935
6961
|
name: defaultPlace.name,
|
|
6936
6962
|
displayName: defaultPlace.displayName
|
|
6937
6963
|
});
|
|
6938
|
-
const centerPoint = Vue.computed(() => [centerPlace.lng, centerPlace.lat]);
|
|
6939
6964
|
const centerSource = {
|
|
6940
6965
|
source: "default"
|
|
6941
6966
|
};
|
|
@@ -6946,24 +6971,18 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6946
6971
|
const setCenterPlaceByUserSpecified = async (input) => {
|
|
6947
6972
|
centerSource.source = "api";
|
|
6948
6973
|
const place = toPlaceType(input);
|
|
6949
|
-
centerPlace
|
|
6950
|
-
centerPlace.lat = place.lat;
|
|
6951
|
-
centerPlace.name = place.name;
|
|
6952
|
-
centerPlace.displayName = place.displayName;
|
|
6953
|
-
emit("changePlace", {
|
|
6954
|
-
...place
|
|
6955
|
-
});
|
|
6974
|
+
Object.assign(centerPlace, place);
|
|
6956
6975
|
updateRecommendPlace(place);
|
|
6957
6976
|
};
|
|
6958
6977
|
const setCenterPlaceByUserSpecifiedInZone = ({
|
|
6959
|
-
place,
|
|
6978
|
+
place: input,
|
|
6960
6979
|
recommends
|
|
6961
6980
|
}) => {
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
centerPlace
|
|
6965
|
-
|
|
6966
|
-
|
|
6981
|
+
const place = toPlaceType(input);
|
|
6982
|
+
assertZone(recommends.zone);
|
|
6983
|
+
Object.assign(centerPlace, place);
|
|
6984
|
+
if (!isZoneEqual(recommends.zone, zoneRef.value))
|
|
6985
|
+
setZoom(ZONE_ZOOM);
|
|
6967
6986
|
setPlaceCandidatesAndZone(recommends);
|
|
6968
6987
|
emit("changePlace", {
|
|
6969
6988
|
...place
|
|
@@ -6976,8 +6995,6 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6976
6995
|
centerPlace.lat = place.lat;
|
|
6977
6996
|
centerPlace.name = place.name;
|
|
6978
6997
|
centerPlace.displayName = place.displayName;
|
|
6979
|
-
if (zoneRef.value)
|
|
6980
|
-
setZoom(ZONE_ZOOM);
|
|
6981
6998
|
emit("changePlace", {
|
|
6982
6999
|
...place
|
|
6983
7000
|
});
|
|
@@ -6988,7 +7005,8 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6988
7005
|
inputPlace: {
|
|
6989
7006
|
...place
|
|
6990
7007
|
},
|
|
6991
|
-
isInZone: !!zoneRef.value
|
|
7008
|
+
isInZone: !!zoneRef.value,
|
|
7009
|
+
isSameZone: !!zoneRef.value
|
|
6992
7010
|
});
|
|
6993
7011
|
};
|
|
6994
7012
|
const {
|
|
@@ -7031,7 +7049,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7031
7049
|
availableRef,
|
|
7032
7050
|
isElectedRef
|
|
7033
7051
|
} = useMapRecomendPlace({
|
|
7034
|
-
|
|
7052
|
+
defaultPoint: place2point(centerPlace),
|
|
7035
7053
|
emptyPlaceName: DEFAULT_PLACE_NAME,
|
|
7036
7054
|
context: centerSource,
|
|
7037
7055
|
getRecomendPlace: pipedGetRecomendPlace,
|
|
@@ -7048,16 +7066,12 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7048
7066
|
throw new Error(`MyError: should not call getLimit on source: ${source}`);
|
|
7049
7067
|
}
|
|
7050
7068
|
},
|
|
7051
|
-
onChangePlace: (place) =>
|
|
7052
|
-
if (centerSource.source !== "recomend") {
|
|
7053
|
-
updateRecommendPlace(place);
|
|
7054
|
-
}
|
|
7055
|
-
emit("changePlace", place);
|
|
7056
|
-
},
|
|
7069
|
+
onChangePlace: (place) => emit("changePlace", place),
|
|
7057
7070
|
onChange: async ({
|
|
7058
7071
|
place,
|
|
7059
7072
|
inputPlace,
|
|
7060
|
-
isInZone
|
|
7073
|
+
isInZone,
|
|
7074
|
+
isSameZone
|
|
7061
7075
|
}) => {
|
|
7062
7076
|
centerSource.source = "recomend";
|
|
7063
7077
|
if (isPlaceEqual(place, centerPlace))
|
|
@@ -7065,12 +7079,13 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7065
7079
|
Object.assign(centerPlace, {
|
|
7066
7080
|
...place
|
|
7067
7081
|
});
|
|
7068
|
-
if (isInZone)
|
|
7082
|
+
if (isInZone && !isSameZone)
|
|
7069
7083
|
setZoom(ZONE_ZOOM);
|
|
7070
7084
|
emit("changeRecomandPlace", {
|
|
7071
7085
|
place,
|
|
7072
7086
|
inputPlace,
|
|
7073
|
-
isInZone
|
|
7087
|
+
isInZone,
|
|
7088
|
+
isSameZone
|
|
7074
7089
|
});
|
|
7075
7090
|
}
|
|
7076
7091
|
});
|
|
@@ -7096,7 +7111,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7096
7111
|
const description = !availableRef.value ? void 0 : isElectedRef.value ? recomendDescription : void 0;
|
|
7097
7112
|
return Vue.h(HeycarMap, {
|
|
7098
7113
|
"attrs": {
|
|
7099
|
-
"center":
|
|
7114
|
+
"center": place2point(centerPlace),
|
|
7100
7115
|
"zoom": zoomRef.value,
|
|
7101
7116
|
"touchZoomCenter": true,
|
|
7102
7117
|
"mapRef": setMap,
|
|
@@ -7131,38 +7146,6 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7131
7146
|
})]);
|
|
7132
7147
|
};
|
|
7133
7148
|
}).props(["loading", "fallback", "log", "defaultPlace", "unavailableTitle", "recomendDescription", "getRecomendPlace", "mapContext"]);
|
|
7134
|
-
const useAmapGeometry = () => {
|
|
7135
|
-
const payload = useMapSupplier();
|
|
7136
|
-
const apiMapDistance = (from, to) => {
|
|
7137
|
-
if (payload.status !== Status.SUCCESS)
|
|
7138
|
-
return void 0;
|
|
7139
|
-
return AMap.GeometryUtil.distance(from, to);
|
|
7140
|
-
};
|
|
7141
|
-
const apiMapDistanceToLine = (from, line) => {
|
|
7142
|
-
if (payload.status !== Status.SUCCESS)
|
|
7143
|
-
return void 0;
|
|
7144
|
-
return AMap.GeometryUtil.distanceToLine(from, line);
|
|
7145
|
-
};
|
|
7146
|
-
return { apiMapDistance, apiMapDistanceToLine };
|
|
7147
|
-
};
|
|
7148
|
-
const useGmapGeometry = () => {
|
|
7149
|
-
const payload = useMapSupplier();
|
|
7150
|
-
const apiMapDistance = (from, to) => {
|
|
7151
|
-
if (payload.status !== Status.SUCCESS)
|
|
7152
|
-
return void 0;
|
|
7153
|
-
return google.maps.geometry.spherical.computeDistanceBetween(vec2lnglat(from), vec2lnglat(to));
|
|
7154
|
-
};
|
|
7155
|
-
const apiMapDistanceToLine = (from, line) => {
|
|
7156
|
-
if (payload.status !== Status.SUCCESS)
|
|
7157
|
-
return void 0;
|
|
7158
|
-
return 0;
|
|
7159
|
-
};
|
|
7160
|
-
return { apiMapDistance, apiMapDistanceToLine };
|
|
7161
|
-
};
|
|
7162
|
-
const useMapGeometry = () => {
|
|
7163
|
-
const { supplier } = useMapSupplier();
|
|
7164
|
-
return supplier === "gmap" ? useGmapGeometry() : useAmapGeometry();
|
|
7165
|
-
};
|
|
7166
7149
|
const imgTaxicar = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iNDQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGQ9Ik0zNC4wODcgMTAuOTZjMCAyLjM2OS0uMDU0IDIuOTgtLjc4MiAzLjcwNC0uNzkzLjc5LTUuMjM2LjgzMy01LjIzNi44MzNsLTQuMTE2LjE5Mi05Ljg5Ni0uMTQ0cy03Ljc5LS4wMjYtOS4xMzEtLjAyNmMtMS4zNDIgMC0yLjQwNi0uODQ3LTIuNDA2LS44NDdDLjE0IDEyLjkzMiAwIDExLjA5IDAgMTEuMDlWNS44NnMuMTQtMS44NDIgMi41Mi0zLjU4M2MwIDAgMS4wNjQtLjg0NiAyLjQwNi0uODQ2IDEuMzQxIDAgOS4xMy0uMDI2IDkuMTMtLjAyNmw5Ljg5Ny0uMTQ0IDQuMTE2LjE5MnM0LjQ4NCAwIDUuMjM2LjgzM2MuNzc4Ljg2Ljc4MiAxLjM3Ljc4MiAzLjc0djQuOTM0eiIgaWQ9InByZWZpeF9fYiIvPjxwYXRoIGQ9Ik0wIDEuNDkzUzUuNy4xOCA4LjcxOS4wNWMzLjAyLS4xMzEgMy40Ny4wMTcgNS4yODIuMjEuNTA3LjA1MSAzLjI2LjkxIDMuMjYuOTFsLTcuMzAzLjNMMCAxLjQ5NHoiIGlkPSJwcmVmaXhfX2MiLz48cGF0aCBkPSJNMTAuMDggMi44MTVDOS4yOTUgNC40ODMgOC44NSA2LjQyMyA4Ljg1IDguNDk0YzAgMi4wNjIuNDQyIDMuOTk0IDEuMjIgNS42NTdsNS42OTgtMS4xNTdhMTUuNjAxIDE1LjYwMSAwIDAxLS42NjctNC41NTJjMC0xLjY1OS4yMDQtMy4wNjUuNjU5LTQuNTA1TDEwLjA4IDIuODE1eiIgaWQ9InByZWZpeF9fZSIvPjxwYXRoIGQ9Ik0yNS43NTMgOC40NTVjMCAxLjkyLS4yMiAzLjM2NC0uNjAxIDQuODkxbDIuNjI2LjM1YzEuMTc4LS4wMDUgMi4xMzItMi4zMzUgMi4xMzItNS4yMTVzLS45NTQtNS4yMS0yLjEzMi01LjIxbC0yLjYxNC4zNWMuMzcyIDEuNTEzLjU4OSAyLjk0LjU4OSA0LjgzNHoiIGlkPSJwcmVmaXhfX2ciLz48cGF0aCBkPSJNLjA2NC4wMTVMLjE1OC4wMDJDLjE4OC0uMDE2LjM3MS4xMDYuNC4xMjRjLjE4OC4xMjYuMzIxLjI0NC40My43Ni4wNTQuMjUyLjIwNyAxLjQ2NS4xOTggMS40OTZsLS42MzMuODMzLjExOSAzLjE3LS4wOTQuMDc2TDAgLjEzN2MwLS4wNTIuMDI1LS4xLjA2NC0uMTIyeiIgaWQ9InByZWZpeF9faSIvPjxwYXRoIGQ9Ik0uMDY0IDYuNTE1bC4wOTQuMDEzYy4wMy4wMTguMjEzLS4xMDQuMjQyLS4xMjIuMTg4LS4xMjYuMzIxLS4yNDQuNDMtLjc2LjA1NC0uMjUyLjIwNy0xLjQ2NS4xOTgtMS40OTZsLS42MzMtLjgzM0wuNDIgMHYuMDdMMCA2LjM5NGMwIC4wNTIuMDI1LjEuMDY0LjEyMnoiIGlkPSJwcmVmaXhfX2siLz48bGluZWFyR3JhZGllbnQgeDE9IjEyNS4yNjQlIiB5MT0iNDkuNjI2JSIgeDI9IjAlIiB5Mj0iNTAlIiBpZD0icHJlZml4X19kIj48c3RvcCBzdG9wLWNvbG9yPSIjRkZGIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1vcGFjaXR5PSIuNSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjIyLjcxMiUiIHkxPSI3My4xMzMlIiB4Mj0iNjguNjIlIiB5Mj0iNjYuMTk0JSIgaWQ9InByZWZpeF9fZiI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZGRiIgc3RvcC1vcGFjaXR5PSIuNSIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3Atb3BhY2l0eT0iLjUiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IHgxPSIxMjguNzY4JSIgeTE9IjUwJSIgeDI9IjAlIiB5Mj0iNTAlIiBpZD0icHJlZml4X19oIj48c3RvcCBzdG9wLWNvbG9yPSIjRkZGIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1vcGFjaXR5PSIuNSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjEwMCUiIHkxPSIxMDAlIiB4Mj0iMjguNCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19qIj48c3RvcCBzdG9wLWNvbG9yPSIjRkZCRUJFIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzM1MjIyMiIgc3RvcC1vcGFjaXR5PSIuNSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgeDE9IjEwMCUiIHkxPSIxMDAlIiB4Mj0iMjguNCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19sIj48c3RvcCBzdG9wLWNvbG9yPSIjRkZCRUJFIiBzdG9wLW9wYWNpdHk9Ii41IiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzM1MjIyMiIgc3RvcC1vcGFjaXR5PSIuNSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48ZmlsdGVyIHg9Ii0xNy42JSIgeT0iLTQxLjYlIiB3aWR0aD0iMTM1LjIlIiBoZWlnaHQ9IjE4My4yJSIgZmlsdGVyVW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiBpZD0icHJlZml4X19hIj48ZmVPZmZzZXQgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSIvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIiIGluPSJzaGFkb3dPZmZzZXRPdXRlcjEiIHJlc3VsdD0ic2hhZG93Qmx1ck91dGVyMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjA4NjI3NDUwOTggMCAwIDAgMCAwLjA4NjI3NDUwOTggMCAwIDAgMCAwLjA4NjI3NDUwOTggMCAwIDAgMC41IDAiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIi8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTAgMGgyNHY0NEgweiIvPjxnIGZpbGwtcnVsZT0ibm9uemVybyI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAxIDEgMCAzLjQ5OCA0LjY0MikiPjx1c2UgZmlsbD0iIzAwMCIgZmlsdGVyPSJ1cmwoI3ByZWZpeF9fYSkiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2IiLz48dXNlIGZpbGw9IiNERkVDRjIiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2IiLz48L2c+PHBhdGggZD0iTTE0LjQ1OCAzOC43MjhjMi4zNjkgMCAyLjk4LS4wNTMgMy43MDQtLjc4MS43OS0uNzk0LjgzNC01LjIzNy44MzQtNS4yMzdsLjE5MS00LjExNS0uMTQ0LTkuODk2cy0uMDI2LTcuNzktLjAyNi05LjEzMmMwLTEuMzQyLS44NDYtMi40MDUtLjg0Ni0yLjQwNS0xLjc0MS0yLjM4MS0zLjU4Mi0yLjUyLTMuNTgyLTIuNTJIOS4zNTdzLTEuODQxLjEzOS0zLjU4MiAyLjUyYzAgMC0uODQ3IDEuMDYzLS44NDcgMi40MDUgMCAxLjM0Mi0uMDI2IDkuMTMyLS4wMjYgOS4xMzJsLS4xNDQgOS44OTYuMTkyIDQuMTE1czAgNC40ODQuODMzIDUuMjM3Yy44Ni43NzcgMS4zNy43ODEgMy43NC43ODFoNC45MzV6IiBmaWxsPSIjRUZGNUY4Ii8+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAxIDEgMCAxNy4wOTMgMTUuMDYyKSIgb3BhY2l0eT0iLjkiPjx1c2UgZmlsbD0iIzE2MTYxNiIgeGxpbms6aHJlZj0iI3ByZWZpeF9fYyIvPjx1c2UgZmlsbD0idXJsKCNwcmVmaXhfX2QpIiB4bGluazpocmVmPSIjcHJlZml4X19jIi8+PC9nPjxwYXRoIGQ9Ik01LjgyNiAxNC41M2MxLjgwNi0uOTM3IDMuOTE1LTEuNDY1IDYuMTctMS40NjUgMi4yNDMgMCA0LjMzOS41MjggNi4xNDEgMS40NTJsLTEuMjc4IDYuNDg5YTE1LjM3NSAxNS4zNzUgMCAwMC00LjkxNS0uNzk0Yy0xLjc5MyAwLTMuMzI0LjI1NC00Ljg3My43OTRMNS44MjYgMTQuNTN6IiBmaWxsPSIjMTYxNjE2Ii8+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAxIDEgMCAzLjQ5OCA0LjY0MikiPjx1c2UgZmlsbD0iIzNDNDI0MiIgeGxpbms6aHJlZj0iI3ByZWZpeF9fZSIvPjx1c2UgZmlsbD0idXJsKCNwcmVmaXhfX2YpIiB4bGluazpocmVmPSIjcHJlZml4X19lIi8+PC9nPjxnIG9wYWNpdHk9Ii45IiB0cmFuc2Zvcm09Im1hdHJpeCgwIDEgMSAwIDMuNDk4IDQuNjQyKSI+PHVzZSBmaWxsPSIjMTYxNjE2IiB4bGluazpocmVmPSIjcHJlZml4X19nIi8+PHVzZSBmaWxsPSJ1cmwoI3ByZWZpeF9faCkiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2ciLz48L2c+PHBhdGggZD0iTTMuODcgMTcuNjUxbC44NzYtLjQ2MmEuMzEzLjMxMyAwIDAwLjE3LS4yNzR2LS4xODhsLTEuMzE3LjY5NXYuMDgyYy4wMDQuMTI3LjE1Mi4yMDkuMjcuMTQ3eiIgZmlsbD0iIzMwMzQzNSIvPjxwYXRoIGQ9Ik0zLjU2NCAxNy40NWwxLjA4Mi0uNTY4Yy4xLS4wNTMuMjEtLjA5LjMyNy0uMTA2YS4xMDguMTA4IDAgMDAuMDk2LS4xMDd2LS41NTJjMC0uMDktLjA3OC0uMTY0LS4xNzQtLjE2NEg0Ljg1Yy0uMTEgMC0uNTAyLjA2Mi0xIC41MjgtLjIyMi4yMDktLjM1My42MzgtLjM1My45MzMgMCAuMDMzLjAzNS4wNTMuMDY2LjAzN3oiIGZpbGw9IiNERkVDRjIiLz48cGF0aCBkPSJNNS40MzQgMTUuMDYyczEuMDk1IDQuNDY3IDEuMjI2IDcuNDg2Yy4xMzEgMy4wMi0uMDE3IDMuNDctLjIxIDUuMjgyLS4wNTEuNTA3LS45MzcgMy44MTMtLjkzNyAzLjgxM0w1LjM2IDI1LjE3bC4wNzQtMTAuMTF6IiBmaWxsPSIjMTYxNjE2IiBvcGFjaXR5PSIuOSIvPjxwYXRoIGQ9Ik0yMC4xMyAxNy42NTFsLS44NzYtLjQ2MmEuMzEzLjMxMyAwIDAxLS4xNy0uMjc0di0uMTg4bDEuMzE3LjY5NXYuMDgyYy0uMDA0LjEyNy0uMTUyLjIwOS0uMjcuMTQ3eiIgZmlsbD0iIzMwMzQzNSIvPjxwYXRoIGQ9Ik0yMC40MzYgMTcuNDVsLTEuMDgyLS41NjhhLjk4NC45ODQgMCAwMC0uMzI3LS4xMDYuMTA4LjEwOCAwIDAxLS4wOTYtLjEwN3YtLjU1MmMwLS4wOS4wNzgtLjE2NC4xNzQtLjE2NGguMDQ0Yy4xMSAwIC41MDIuMDYyIDEgLjUyOC4yMjIuMjA5LjM1My42MzguMzUzLjkzMyAwIC4wMzMtLjAzNS4wNTMtLjA2Ni4wMzd6IiBmaWxsPSIjREZFQ0YyIi8+PHBhdGggZD0iTTkuMjk2IDM4LjUyNGg1LjM3NWMyLjI1MiAwIDIuODA2LS40NTggMy40MzQtMS4xNS0uMTA0LjI4Ny0uMjE4LjUyLS4zNDQuNjU5LS43MTIuNzgxLTEuMDI2IDEuMzI1LTMuMzU2IDEuMzI1SDkuNTU4Yy0yLjMzIDAtMi41NDQtLjQ4Ni0zLjM5LTEuMzI1LS4xNDktLjE0Ny0uMjc2LS40MDUtLjM4OS0uNzMyLjc1NS43NzcgMS4xNjUgMS4yMjMgMy41MTcgMS4yMjN6IiBmaWxsPSIjOTVBNEFEIi8+PHBhdGggZD0iTTguODgxIDM3LjkyMmg2LjA1MmMxLjkxMSAwIDIuNzM2LS4yOTggMy4zMy0uNzgxYTMuMDc1IDMuMDc1IDAgMDEtLjI5Ny43MmMtLjU4NS42MTgtMS4yMyAxLjAxOS0zLjMzNCAxLjAxOUg5LjE3OGMtMS40OCAwLTIuMi0uMTc2LTIuNzE4LS41MDQtLjExOC0uMTEtLjI0LS4yMzctLjM4NC0uMzg0LS4xNC0uMTQ3LS4yNjYtLjQwNS0uMzc2LS43NC41OS40MzMgMS4zOC42NyAzLjE4MS42N3oiIGZpbGw9IiNDQkQ4REUiLz48cGF0aCBkPSJNMTEuODE4IDM4LjAzN2MxLjY1IDAgMy4xMTUtLjA2NiA0LjA0LS4xNjQtLjA3LjE5My0uMTUyLjM0NC0uMjQuNDI2LS4wMzUuMDM3LS4xMTMuMDctLjE0OC4wOTgtLjkyNS4wODItMi4xOTUuMTMtMy42NTIuMTNhNDYuMjIgNDYuMjIgMCAwMS0zLjUzOS0uMTE4Yy0uMDQtLjAzMy0uMTI2LS4wNy0uMTctLjExLS4wOTYtLjA4Mi0uMTc5LS4yMy0uMjUzLS40MTguOTM0LjA5OSAyLjM2LjE1NiAzLjk2Mi4xNTZ6IiBmaWxsPSIjRjJGQUZGIi8+PHBhdGggZD0iTTExLjk4OCAxMi4xOTRjLTIuMjAzIDAtNC4yODUuNDQ2LTYuMTA5IDEuMjI3Ljc4Ny02Ljk2MSAzLjUtNy4xOCAzLjUtNy4xOGg1LjE5MnMzLjEyNS4zMTkgMy41IDcuMTcyYTE1LjQ5MyAxNS40OTMgMCAwMC02LjA4My0xLjIyeiIgZmlsbD0iI0Y5RkRGRiIvPjxnIHRyYW5zZm9ybT0ibWF0cml4KDAgMSAxIDAgNS44MzQgMzcuNTE3KSI+PHVzZSBmaWxsPSIjQjkyRTREIiB4bGluazpocmVmPSIjcHJlZml4X19pIi8+PHVzZSBmaWxsLW9wYWNpdHk9Ii43IiBmaWxsPSJ1cmwoI3ByZWZpeF9faikiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2kiLz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMCAxIDEgMCAxMS40MzggMzcuNTE3KSI+PHVzZSBmaWxsPSIjQjkyRTREIiB4bGluazpocmVmPSIjcHJlZml4X19rIi8+PHVzZSBmaWxsLW9wYWNpdHk9Ii43IiBmaWxsPSJ1cmwoI3ByZWZpeF9fbCkiIHhsaW5rOmhyZWY9IiNwcmVmaXhfX2siLz48L2c+PHBhdGggZD0iTTE4LjQxIDM2LjI3NGMtLjAzOC4yNS0uMDgyLjQ1NC0uMTMuNjQyLS4wOTIuMzcyLS40MTkuNjU1LS44Mi43MTItMS40NzUuMjA4LTMuNDM0LjQyMS01LjU4MS40MjEtMi4wODYgMC0zLjk4OC0uMjA0LTUuNDQ2LS40MDVhLjk3NS45NzUgMCAwMS0uODI0LS43MDggOC45MDMgOC45MDMgMCAwMS0uMTM1LS42NDJjMS41MjIuMjUgMy44MjYuNDEgNi40MDUuNDEgMi42NDggMCA1LjAwOS0uMTY4IDYuNTMyLS40M3oiIGZpbGw9IiNERkVDRjIiLz48cGF0aCBkPSJNMTYuMjE2IDM2LjcxMWMtLjk0Ny40ODctMi40ODcuNy00LjIzMi43LTEuNjk4IDAtMy4yMDctLjE5Ni00LjE1OS0uNjYzLS40NC0uODMtLjY2My0yLjY0My0uNjYzLTIuNjQzbC0uMDA5LS4xODRjLjc3My43MDggMi42NDUgMS4yMDMgNC44MyAxLjIwMyAyLjI0MyAwIDQuMTU5LS41MjQgNC44OTItMS4yNmwtLjAxMy4yNDFjMC0uMDA0LS4yMTggMS43NjQtLjY0NiAyLjYwNnpNNy40NDcgMjMuOTNhMjAuMTIgMjAuMTIgMCAwMC0uMjk0LTIuNDQydi0uMDY1YzEuNTM4LS4zMiAzLjE2Ny0uNjQ5IDQuODYyLS42NDkgMS42NzUgMCAzLjI5NC4zMjYgNC44MTYuNjM3YTIyLjY3MyAyMi42NzMgMCAwMC0uMzAzIDIuNTJjLS4xNDcgMi44ODQuMDIgMy4zMTQuMjMyIDUuMDQ4LjAwNi4wNTcuMDI2LjE1Mi4wNTYuMjc0LTEuNTEzLjI3OC0zIC41NC00LjkxMi41NC0xLjg0NyAwLTMuMjg5LS4yNS00Ljc1LS41MTF2LS4wMDhjLjAzLS4xMzEuMDU1LS4yMzMuMDYtLjI5LjIxOC0xLjc0NC4zOC0yLjE3My4yMzMtNS4wNTN6IiBmaWxsPSIjRjJGQUZGIi8+PHBhdGggZD0iTTEyLjA2NyAxOS43MTZsLTQuNjQ1LjY5MmMtLjQzMS0yLjkyLS44MzItNC4zNi0xLjIwMi00LjMyNGwtLjIxLTEuMjk3YTExLjczMiAxMS43MzIgMCAwMTYuMDI2LTEuNjczYy4zODYgMC0uMTM3LjA1LTEuNTY5LjE0N2wxLjYgNi40NTV6IiBmaWxsPSIjMTYxNjE2Ii8+PC9nPjwvZz48L3N2Zz4=";
|
|
7167
7150
|
const TaxiCar_css_ts_vanilla = "";
|
|
7168
7151
|
var carIcon = "_65j3sr1";
|
|
@@ -7516,12 +7499,16 @@ const SectionDispatching = defineSetup(function SectionDispatching2(props) {
|
|
|
7516
7499
|
title,
|
|
7517
7500
|
registerOverlay
|
|
7518
7501
|
} = props;
|
|
7502
|
+
const {
|
|
7503
|
+
language
|
|
7504
|
+
} = useMapSupplier();
|
|
7519
7505
|
const from = place2point(fromPlace);
|
|
7520
7506
|
return Vue.h("div", [Vue.h(StartEndPoint, {
|
|
7521
7507
|
"attrs": {
|
|
7522
7508
|
"type": "start",
|
|
7523
7509
|
"position": from,
|
|
7524
7510
|
"title": title,
|
|
7511
|
+
"language": language,
|
|
7525
7512
|
"registerOverlay": registerOverlay
|
|
7526
7513
|
}
|
|
7527
7514
|
}), Vue.h(WaveCircle, {
|
|
@@ -7547,6 +7534,9 @@ const SectionDispatching = defineSetup(function SectionDispatching2(props) {
|
|
|
7547
7534
|
};
|
|
7548
7535
|
});
|
|
7549
7536
|
const SectionConfirmed = defineSetup(function SectionConfirmed2(props) {
|
|
7537
|
+
const {
|
|
7538
|
+
language
|
|
7539
|
+
} = useMapSupplier();
|
|
7550
7540
|
const {
|
|
7551
7541
|
apiMapDistance
|
|
7552
7542
|
} = useMapGeometry();
|
|
@@ -7584,13 +7574,15 @@ const SectionConfirmed = defineSetup(function SectionConfirmed2(props) {
|
|
|
7584
7574
|
"attrs": {
|
|
7585
7575
|
"type": "start",
|
|
7586
7576
|
"registerOverlay": registerOverlay,
|
|
7587
|
-
"position": from
|
|
7577
|
+
"position": from,
|
|
7578
|
+
"language": language
|
|
7588
7579
|
}
|
|
7589
7580
|
}), Vue.h(StartEndPoint, {
|
|
7590
7581
|
"attrs": {
|
|
7591
7582
|
"type": "end",
|
|
7592
7583
|
"registerOverlay": registerOverlay,
|
|
7593
|
-
"position": to
|
|
7584
|
+
"position": to,
|
|
7585
|
+
"language": language
|
|
7594
7586
|
}
|
|
7595
7587
|
}), Vue.h(PlaceCircle, {
|
|
7596
7588
|
"attrs": {
|
|
@@ -7621,6 +7613,9 @@ const SectionDriverStartService = defineSetup(function SectionDriverStartService
|
|
|
7621
7613
|
registerOverlay
|
|
7622
7614
|
} = props;
|
|
7623
7615
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
7616
|
+
const {
|
|
7617
|
+
language
|
|
7618
|
+
} = useMapSupplier();
|
|
7624
7619
|
const {
|
|
7625
7620
|
apiMapDistance
|
|
7626
7621
|
} = useMapGeometry();
|
|
@@ -7647,7 +7642,8 @@ const SectionDriverStartService = defineSetup(function SectionDriverStartService
|
|
|
7647
7642
|
"attrs": {
|
|
7648
7643
|
"type": "start",
|
|
7649
7644
|
"position": from,
|
|
7650
|
-
"registerOverlay": registerOverlay
|
|
7645
|
+
"registerOverlay": registerOverlay,
|
|
7646
|
+
"language": language
|
|
7651
7647
|
}
|
|
7652
7648
|
}), Vue.h(PlaceCircle, {
|
|
7653
7649
|
"attrs": {
|
|
@@ -7722,6 +7718,9 @@ const SectionBookDispatched = defineSetup(function SectionBookDispatched2(props)
|
|
|
7722
7718
|
const {
|
|
7723
7719
|
apiMapDistance
|
|
7724
7720
|
} = useMapGeometry();
|
|
7721
|
+
const {
|
|
7722
|
+
language
|
|
7723
|
+
} = useMapSupplier();
|
|
7725
7724
|
return () => {
|
|
7726
7725
|
const {
|
|
7727
7726
|
from: fromPlace,
|
|
@@ -7768,13 +7767,15 @@ const SectionBookDispatched = defineSetup(function SectionBookDispatched2(props)
|
|
|
7768
7767
|
"attrs": {
|
|
7769
7768
|
"type": "start",
|
|
7770
7769
|
"registerOverlay": registerOverlay,
|
|
7771
|
-
"position": from
|
|
7770
|
+
"position": from,
|
|
7771
|
+
"language": language
|
|
7772
7772
|
}
|
|
7773
7773
|
}), Vue.h(StartEndPoint, {
|
|
7774
7774
|
"attrs": {
|
|
7775
7775
|
"type": "end",
|
|
7776
7776
|
"registerOverlay": registerOverlay,
|
|
7777
|
-
"position": to
|
|
7777
|
+
"position": to,
|
|
7778
|
+
"language": language
|
|
7778
7779
|
}
|
|
7779
7780
|
}), Vue.h(PlaceCircle, {
|
|
7780
7781
|
"attrs": {
|
|
@@ -7805,6 +7806,9 @@ const SectionDriverArrived = defineSetup(function SectionDriverArrived2(props) {
|
|
|
7805
7806
|
registerOverlay
|
|
7806
7807
|
} = props;
|
|
7807
7808
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
7809
|
+
const {
|
|
7810
|
+
language
|
|
7811
|
+
} = useMapSupplier();
|
|
7808
7812
|
const {
|
|
7809
7813
|
apiMapDistance
|
|
7810
7814
|
} = useMapGeometry();
|
|
@@ -7849,7 +7853,8 @@ const SectionDriverArrived = defineSetup(function SectionDriverArrived2(props) {
|
|
|
7849
7853
|
"attrs": {
|
|
7850
7854
|
"type": "start",
|
|
7851
7855
|
"position": from,
|
|
7852
|
-
"registerOverlay": registerOverlay
|
|
7856
|
+
"registerOverlay": registerOverlay,
|
|
7857
|
+
"language": language
|
|
7853
7858
|
}
|
|
7854
7859
|
}), Vue.h(PlaceCircle, {
|
|
7855
7860
|
"attrs": {
|
|
@@ -7882,6 +7887,9 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7882
7887
|
renderTitle
|
|
7883
7888
|
} = props;
|
|
7884
7889
|
const to = place2point(toPlace);
|
|
7890
|
+
const {
|
|
7891
|
+
language
|
|
7892
|
+
} = useMapSupplier();
|
|
7885
7893
|
const {
|
|
7886
7894
|
apiMapDistance
|
|
7887
7895
|
} = useMapGeometry();
|
|
@@ -7929,7 +7937,8 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7929
7937
|
"attrs": {
|
|
7930
7938
|
"type": "end",
|
|
7931
7939
|
"position": to,
|
|
7932
|
-
"registerOverlay": registerOverlay
|
|
7940
|
+
"registerOverlay": registerOverlay,
|
|
7941
|
+
"language": language
|
|
7933
7942
|
}
|
|
7934
7943
|
}), Vue.h(PlaceCircle, {
|
|
7935
7944
|
"attrs": {
|
|
@@ -7950,6 +7959,9 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7950
7959
|
};
|
|
7951
7960
|
});
|
|
7952
7961
|
const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
7962
|
+
const {
|
|
7963
|
+
language
|
|
7964
|
+
} = useMapSupplier();
|
|
7953
7965
|
return () => {
|
|
7954
7966
|
const {
|
|
7955
7967
|
from: fromPlace,
|
|
@@ -7962,13 +7974,15 @@ const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
|
7962
7974
|
"attrs": {
|
|
7963
7975
|
"type": "start",
|
|
7964
7976
|
"position": from,
|
|
7965
|
-
"registerOverlay": registerOverlay
|
|
7977
|
+
"registerOverlay": registerOverlay,
|
|
7978
|
+
"language": language
|
|
7966
7979
|
}
|
|
7967
7980
|
}), Vue.h(StartEndPoint, {
|
|
7968
7981
|
"attrs": {
|
|
7969
7982
|
"type": "end",
|
|
7970
7983
|
"position": to,
|
|
7971
|
-
"registerOverlay": registerOverlay
|
|
7984
|
+
"registerOverlay": registerOverlay,
|
|
7985
|
+
"language": language
|
|
7972
7986
|
}
|
|
7973
7987
|
}), Vue.h(PlaceCircle, {
|
|
7974
7988
|
"attrs": {
|
|
@@ -7995,6 +8009,9 @@ const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
|
7995
8009
|
};
|
|
7996
8010
|
});
|
|
7997
8011
|
const SectionEndService = defineSetup(function SectionEndService2(props) {
|
|
8012
|
+
const {
|
|
8013
|
+
language
|
|
8014
|
+
} = useMapSupplier();
|
|
7998
8015
|
return () => {
|
|
7999
8016
|
const {
|
|
8000
8017
|
from: fromPlace,
|
|
@@ -8020,13 +8037,15 @@ const SectionEndService = defineSetup(function SectionEndService2(props) {
|
|
|
8020
8037
|
"attrs": {
|
|
8021
8038
|
"type": "start",
|
|
8022
8039
|
"position": from,
|
|
8023
|
-
"registerOverlay": registerOverlay
|
|
8040
|
+
"registerOverlay": registerOverlay,
|
|
8041
|
+
"language": language
|
|
8024
8042
|
}
|
|
8025
8043
|
}), Vue.h(StartEndPoint, {
|
|
8026
8044
|
"attrs": {
|
|
8027
8045
|
"type": "end",
|
|
8028
8046
|
"position": to,
|
|
8029
|
-
"registerOverlay": registerOverlay
|
|
8047
|
+
"registerOverlay": registerOverlay,
|
|
8048
|
+
"language": language
|
|
8030
8049
|
}
|
|
8031
8050
|
}), Vue.h(PlaceCircle, {
|
|
8032
8051
|
"attrs": {
|