@heycar/heycars-map 0.9.1 → 0.9.4
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 +377 -327
- package/dist/index.js +377 -327
- package/dist/src/Demo/DemoBusinessTaxiEnd.d.ts +12 -2
- package/dist/src/api/contants.d.ts +4 -1
- 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 +20 -3
- 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.4";
|
|
13
13
|
const type = "module";
|
|
14
14
|
const scripts = {
|
|
15
15
|
dev: "vite -c vite.config.dev.ts",
|
|
@@ -1100,16 +1100,16 @@ 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
1113
|
const isLatLngLiteral = (value) => {
|
|
1114
1114
|
return value != null && typeof value === "object" && Number.isFinite(value.lat) && Number.isFinite(value.lng);
|
|
1115
1115
|
};
|
|
@@ -1155,6 +1155,18 @@ const pausableSleep = (milliSeconds) => {
|
|
|
1155
1155
|
};
|
|
1156
1156
|
return { sleepPromise: sleepDefered, pause, restart };
|
|
1157
1157
|
};
|
|
1158
|
+
const MAX_ANIMATION_DISTANCE_VW = 300;
|
|
1159
|
+
const MIN_ANIMATION_DURATION = 300;
|
|
1160
|
+
const ANIMATION_DURATION_FOR_100VW = 200;
|
|
1161
|
+
const ANIMATION_DURATION_PER_ZOOM = 400;
|
|
1162
|
+
const BEIJIN_POINT = [116.2317, 39.5427];
|
|
1163
|
+
const ZINDEX_BUBBLE_LAYER = 50;
|
|
1164
|
+
const ZINDEX_START_END_LOGO_LAYER = 40;
|
|
1165
|
+
const ZINDEX_PLACE_LAYER = 30;
|
|
1166
|
+
const ZINDEX_CAR_LAYER = 21;
|
|
1167
|
+
const ZINDEX_PASSENGER_LAYER = 20;
|
|
1168
|
+
const ZINDEX_LINE_LAYER = 12;
|
|
1169
|
+
const ZINDEX_GREEN_ZONE = 10;
|
|
1158
1170
|
const vec2lnglat = ([lng, lat]) => ({
|
|
1159
1171
|
lng: Number(lng),
|
|
1160
1172
|
lat: Number(lat)
|
|
@@ -1226,6 +1238,9 @@ const isGeoPositionEqual = (p1, p2) => {
|
|
|
1226
1238
|
return false;
|
|
1227
1239
|
return p1.coords.longitude === p2.coords.longitude && p1.coords.latitude === p2.coords.latitude;
|
|
1228
1240
|
};
|
|
1241
|
+
const isZoneEqual = (z1, z2) => {
|
|
1242
|
+
return z1.path.every((point, idx) => isPointEqual(point, z2 == null ? void 0 : z2.path[idx]));
|
|
1243
|
+
};
|
|
1229
1244
|
const amapPlaceName2DisplayName = (name2, options) => {
|
|
1230
1245
|
const { isChina, province, city, district, township } = options;
|
|
1231
1246
|
if (!name2)
|
|
@@ -1240,14 +1255,30 @@ const amapPlaceName2DisplayName = (name2, options) => {
|
|
|
1240
1255
|
}
|
|
1241
1256
|
return result;
|
|
1242
1257
|
};
|
|
1258
|
+
const distanceVw2animationDuration = (distance) => {
|
|
1259
|
+
return Math.max(MIN_ANIMATION_DURATION, ANIMATION_DURATION_FOR_100VW * distance / 100);
|
|
1260
|
+
};
|
|
1261
|
+
const deltaZoom2animationDuration = (deltaZoom) => {
|
|
1262
|
+
return Math.max(MIN_ANIMATION_DURATION * 4, Math.abs(deltaZoom) * ANIMATION_DURATION_PER_ZOOM);
|
|
1263
|
+
};
|
|
1264
|
+
const throwTypeError = (typeName, value, detail) => {
|
|
1265
|
+
if (detail)
|
|
1266
|
+
new Error(
|
|
1267
|
+
`MyTypeError: expect type: ${typeName}, but received: ${JSON.stringify(
|
|
1268
|
+
value
|
|
1269
|
+
)}
|
|
1270
|
+
Type Error Details: ${detail}`
|
|
1271
|
+
);
|
|
1272
|
+
throw new Error(`MyTypeError: expect type: ${typeName}, but received: ${JSON.stringify(value)}`);
|
|
1273
|
+
};
|
|
1243
1274
|
const toPlaceType = (maybePlace) => {
|
|
1244
1275
|
var _a;
|
|
1245
1276
|
const lng = Number(maybePlace.lng);
|
|
1246
1277
|
if (isNaN(lng))
|
|
1247
|
-
|
|
1278
|
+
throwTypeError("Place", maybePlace, "lng is not number");
|
|
1248
1279
|
const lat = Number(maybePlace.lat);
|
|
1249
1280
|
if (isNaN(lat))
|
|
1250
|
-
|
|
1281
|
+
throwTypeError("Place", maybePlace, "lat is not number");
|
|
1251
1282
|
return {
|
|
1252
1283
|
lng,
|
|
1253
1284
|
lat,
|
|
@@ -1255,6 +1286,37 @@ const toPlaceType = (maybePlace) => {
|
|
|
1255
1286
|
displayName: (_a = maybePlace.displayName) != null ? _a : maybePlace.name
|
|
1256
1287
|
};
|
|
1257
1288
|
};
|
|
1289
|
+
const toPointType = (maybePoint) => {
|
|
1290
|
+
const lng = Number(maybePoint == null ? void 0 : maybePoint[0]);
|
|
1291
|
+
const lat = Number(maybePoint == null ? void 0 : maybePoint[1]);
|
|
1292
|
+
if (isNaN(lat) || isNaN(lng))
|
|
1293
|
+
throwTypeError("Point", maybePoint);
|
|
1294
|
+
return [lng, lat];
|
|
1295
|
+
};
|
|
1296
|
+
const toZoneType = (maybeZone) => {
|
|
1297
|
+
try {
|
|
1298
|
+
if (!maybeZone)
|
|
1299
|
+
throwTypeError("Zone", maybeZone);
|
|
1300
|
+
const { name: name2 = "", path } = maybeZone;
|
|
1301
|
+
if (!Array.isArray(path))
|
|
1302
|
+
throwTypeError("Zone", maybeZone);
|
|
1303
|
+
return { name: name2, path: path.map(toPointType) };
|
|
1304
|
+
} catch (err) {
|
|
1305
|
+
return throwTypeError("Zone", maybeZone, err == null ? void 0 : err.message);
|
|
1306
|
+
}
|
|
1307
|
+
};
|
|
1308
|
+
const toRecommendZonePlacesType = (maybeRecomendZonePlaces) => {
|
|
1309
|
+
try {
|
|
1310
|
+
const { available, zone, places } = maybeRecomendZonePlaces;
|
|
1311
|
+
return {
|
|
1312
|
+
available: !!available,
|
|
1313
|
+
zone: zone === void 0 ? zone : toZoneType(zone),
|
|
1314
|
+
places: places === void 0 ? places : places.map(toPlaceType)
|
|
1315
|
+
};
|
|
1316
|
+
} catch (err) {
|
|
1317
|
+
return throwTypeError("RecommendZonePlaces", maybeRecomendZonePlaces, err == null ? void 0 : err.message);
|
|
1318
|
+
}
|
|
1319
|
+
};
|
|
1258
1320
|
const wxGetLocationSuccessResponse2GeolocationPosition = (res) => {
|
|
1259
1321
|
const { longitude, latitude, accuracy } = res;
|
|
1260
1322
|
const speed = Number(res.speed);
|
|
@@ -2245,15 +2307,6 @@ function detectWebGL() {
|
|
|
2245
2307
|
}
|
|
2246
2308
|
return "NOT_SUPPORTED";
|
|
2247
2309
|
}
|
|
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
2310
|
const useAmapLngLatToVw = (props) => {
|
|
2258
2311
|
const apiMapLngLatToVw = (point) => {
|
|
2259
2312
|
const amap2 = props.mapRef.value;
|
|
@@ -2389,8 +2442,13 @@ const Amap = defineSetup(function Amap2(props, { slots, emit }) {
|
|
|
2389
2442
|
const map = mapRef.value;
|
|
2390
2443
|
if (!center || !map)
|
|
2391
2444
|
return;
|
|
2392
|
-
|
|
2393
|
-
|
|
2445
|
+
if (!prevCenter)
|
|
2446
|
+
return map.setCenter(center, true);
|
|
2447
|
+
const distanceVw = apiMapDistanceVwOfPoints(center, prevCenter);
|
|
2448
|
+
if (distanceVw > MAX_ANIMATION_DISTANCE_VW)
|
|
2449
|
+
return map.setCenter(center, true);
|
|
2450
|
+
const duration = distanceVw2animationDuration(distanceVw);
|
|
2451
|
+
map.setCenter(center, false, duration);
|
|
2394
2452
|
}
|
|
2395
2453
|
);
|
|
2396
2454
|
Vue.watch(
|
|
@@ -3334,7 +3392,9 @@ const InterruptableIntervalFitView = defineSetup(function InterruptableIntervalF
|
|
|
3334
3392
|
});
|
|
3335
3393
|
return () => null;
|
|
3336
3394
|
});
|
|
3395
|
+
const imgEndPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0xMiAzMGMyLjEzNCAwIDMuODYzLS44OTMgMy44NjMtMS45OTUgMC0xLjEtMS43My0xLjk5NC0zLjg2My0xLjk5NC0yLjEzNCAwLTMuODYzLjg5My0zLjg2MyAxLjk5NEM4LjEzNyAyOS4xMDcgOS44NjcgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3LjAwNmMyLjEyOCAwLS45LTMuNzQzIDUuNjIxLTYuNjQzQzE5Ljg0MiAxOC40NTMgMjIgMTQuOTUzIDIyIDEwLjk1IDIyIDQuOTAyIDE3LjA3NSAwIDExIDBTMCA0LjkwMiAwIDEwLjk1YzAgMy45MTggMi4wNjggNy4zNTYgNS4xNzcgOS4yOUMxMS43NSAyMy4yODQgOS4wNiAyNy4wMDcgMTEgMjcuMDA3di0uMDAxeiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiLz48ZyBmaWxsPSIjRkZGIj48cGF0aCBkPSJNOC44OTMgMTIuNjY2SDYuNjYzdjEuMzY1aDIuNTc0di45NTJoLTMuNjZ2LTUuNDloMy41Nzh2Ljk0Nkg2LjY2M3YxLjI5aDIuMjI5ek0xMi4yNzUgMTEuMDAxYy40MyAwIC43Ny4xNDEgMS4wMi40MjQuMjUuMjgyLjM3NS42OTMuMzc1IDEuMjMzdjIuMzI1aC0xLjA0M3YtMS45ODdjMC0uNzEtLjIzNS0xLjA2NS0uNzA1LTEuMDY1YS43MzIuNzMyIDAgMDAtLjYwMy4yODljLS4xNTMuMTkyLS4yMjkuNDYzLS4yMjkuODEzdjEuOTVoLTEuMDQzdi0zLjg4NWguOTE1Yy4wMjUuMzA1LjA0OC41MTMuMDY4LjYyMy4yNS0uNDguNjY1LS43MiAxLjI0NS0uNzJ6TTE3LjI3NyA5LjI3NmgxLjA0M3Y1LjcwN2gtLjkxNWMtLjAyNS0uMjktLjA0NS0uNDg1LS4wNi0uNTg1YTEuMzE3IDEuMzE3IDAgMDEtLjUyOS41MDcgMS41MiAxLjUyIDAgMDEtLjcwOS4xNjhjLS4zMiAwLS42MTItLjA4LS44NzctLjI0YTEuNzI0IDEuNzI0IDAgMDEtLjYzOC0uN2MtLjE2LS4zMDgtLjI0LS42NzItLjI0LTEuMDkyIDAtLjQyNS4wOC0uNzkxLjI0LTEuMDk5LjE2LS4zMDcuMzczLS41NDEuNjM4LS43MDEuMjY1LS4xNi41NTctLjI0Ljg3Ny0uMjQuMjM1IDAgLjQ1NC4wNDcuNjU3LjE0Mi4yMDIuMDk1LjM3My4yNC41MTMuNDM1VjkuMjc2em0tLjkzIDQuOTA1Yy4yNiAwIC40OC0uMDk1LjY2LS4yODUuMTgtLjE5LjI3LS40NzUuMjctLjg1NSAwLS4zNzUtLjA5LS42NTQtLjI3LS44MzZhLjg5Mi44OTIgMCAwMC0uNjYtLjI3NC44MzIuODMyIDAgMDAtLjY2My4yOTJjLS4xNjguMTk1LS4yNTEuNDY4LS4yNTEuODE4IDAgLjM1LjA4My42MjcuMjUuODMyYS44MTUuODE1IDAgMDAuNjY1LjMwOHoiLz48L2c+PC9nPjwvc3ZnPg==";
|
|
3337
3396
|
const imgEndPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zMzklIiB5MT0iNTAlIiB4Mj0iMCUiIHkyPSI1MCUiIGlkPSJwcmVmaXhfX2EiPjxzdG9wIHN0b3AtY29sb3I9IiNGRjg0NDciIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkY4QjRBIiBvZmZzZXQ9IjUwLjU5NiUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRkZBOTVBIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0xMiAzMC4yMTVjMi4xMzQgMCAzLjg2My0uODkzIDMuODYzLTEuOTk1IDAtMS4xLTEuNzMtMS45OTQtMy44NjMtMS45OTQtMi4xMzQgMC0zLjg2My44OTMtMy44NjMgMS45OTQgMCAxLjEwMiAxLjczIDEuOTk1IDMuODYzIDEuOTk1eiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyNy4wMDZjMi4xMjggMC0uOS0zLjc0MyA1LjYyMS02LjY0M0MxOS44NDIgMTguNDUzIDIyIDE0Ljk1MyAyMiAxMC45NSAyMiA0LjkwMiAxNy4wNzUgMCAxMSAwUzAgNC45MDIgMCAxMC45NWMwIDMuOTE4IDIuMDY4IDcuMzU2IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjg0IDkuMDYgMjcuMDA3IDExIDI3LjAwN3oiIHN0cm9rZT0iI0ZGRiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSIvPjx0ZXh0IGZvbnQtZmFtaWx5PSJQaW5nRmFuZ1NDLVNlbWlib2xkLCBQaW5nRmFuZyBTQyIgZm9udC1zaXplPSIxMiIgZm9udC13ZWlnaHQ9IjUwMCIgZmlsbD0iI0ZGRiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxLjIxNSkiPjx0c3BhbiB4PSI1IiB5PSIxNS40NDkiPue7iDwvdHNwYW4+PC90ZXh0PjwvZz48L3N2Zz4=";
|
|
3397
|
+
const imgStartPointEn = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBmaWxsPSJub25lIj48cGF0aCBkPSJNMTIgMzBjMS45NSAwIDMuNTMyLS44MTYgMy41MzItMS44MjMgMC0xLjAwNy0xLjU4MS0xLjgyMy0zLjUzMi0xLjgyMy0xLjk1IDAtMy41MzIuODE2LTMuNTMyIDEuODIzQzguNDY4IDI5LjE4NCAxMC4wNDkgMzAgMTIgMzB6IiBmaWxsLW9wYWNpdHk9Ii41IiBmaWxsPSIjNDM0ODVBIi8+PHBhdGggZD0iTTExIDI3YzIuMTI4IDAtLjktMy43NDIgNS42MjEtNi42NDEgMy4yMjEtMS45MSA1LjM3OS01LjQxIDUuMzc5LTkuNDEyQzIyIDQuOTAxIDE3LjA3NSAwIDExIDBTMCA0LjkwMSAwIDEwLjk0N2MwIDMuOTE4IDIuMDY4IDcuMzU1IDUuMTc3IDkuMjlDMTEuNzUgMjMuMjc3IDkuMDYgMjcgMTEgMjd6IiBzdHJva2U9IiNGRkYiIGZpbGw9InVybCgjcHJlZml4X19hKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIvPjxnIGZpbGw9IiNGRkYiPjxwYXRoIGQ9Ik03LjU1IDEzLjM5M2MwIC4zNzUtLjA5Ni42OS0uMjg5Ljk0MmExLjcgMS43IDAgMDEtLjc1LjU1OGMtLjMwNy4xMi0uNjM2LjE4LS45ODYuMTgtLjUxIDAtLjk3LS4xMTgtMS4zOC0uMzU2YTEuNzI2IDEuNzI2IDAgMDEtLjgxNy0xLjAwOWwuODg1LS41MDJjLjEyLjI4LjI5NS40OTcuNTI1LjY1Mi4yMy4xNTUuNTA1LjIzMy44MjUuMjMzLjI2IDAgLjQ2Ni0uMDUzLjYxOC0uMTU4YS41Mi41MiAwIDAwLjIyOS0uNDU3LjU0Ni41NDYgMCAwMC0uMTU0LS4zOTggMS4wNzcgMS4wNzcgMCAwMC0uMzgyLS4yNDcgOC41MTUgOC41MTUgMCAwMC0uNjI3LS4yMSA2LjgwNyA2LjgwNyAwIDAxLS44Ny0uMzExIDEuNTMyIDEuNTMyIDAgMDEtLjU3Ny0uNDYyYy0uMTYtLjIwNS0uMjQtLjQ3NS0uMjQtLjgxIDAtLjM1NS4wOTQtLjY1Ni4yODEtLjkwMy4xODgtLjI0OC40MzUtLjQzMy43NDMtLjU1NWEyLjY2IDIuNjYgMCAwMS45OTMtLjE4NGMuNDg1IDAgLjkuMTEgMS4yNDUuMzMuMzQ1LjIyLjU2OC41MTcuNjY4Ljg5MmwtLjg4NS41MDNhMS4xOTUgMS4xOTUgMCAwMC0uNDA1LS41NTEgMS4xMDggMS4xMDggMCAwMC0uNjc1LS4xOTljLS4yNDUgMC0uNDQ0LjA1Ni0uNTk2LjE2OWEuNTI4LjUyOCAwIDAwLS4yMjkuNDQ2YzAgLjE0LjA0Ny4yNTYuMTQyLjM0OS4wOTUuMDkyLjIxNy4xNjcuMzY0LjIyNS4xNDguMDU3LjM0Ni4xMjMuNTk2LjE5OC4zNi4xMDUuNjU4LjIxMi44OTMuMzIuMjM1LjEwNy40MzYuMjY3LjYwNC40OC4xNjcuMjEyLjI1MS40OS4yNTEuODM1ek0xMC42OTUgMTQuNzU4Yy0uMjU1LjIxLS42MS4zMTUtMS4wNjUuMzE1LS40MiAwLS43NTktLjExLTEuMDE2LS4zMzMtLjI1OC0uMjIzLS4zODctLjYyMi0uMzg3LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNkg5LjI3djEuMTkyaDEuMTd2Ljg3OEg5LjI3djEuMzk1YzAgLjI2LjA0NS40NTcuMTM1LjU5Mi4wOS4xMzUuMjM1LjIwMy40MzUuMjAzLjE3NSAwIC4zNC0uMDUzLjQ5NS0uMTU4bC4zNi43NXpNMTIuNjEgMTEuMDAxYy41MjUgMCAuOTM1LjE0OSAxLjIzLjQ0Ni4yOTUuMjk4LjQ0My43MjEuNDQzIDEuMjcxdjIuMjY1aC0uODc4YTUuMjI5IDUuMjI5IDAgMDEtLjAxOS0uMTk4IDEuOTEzIDEuOTEzIDAgMDAtLjAzMy0uMjQ0Yy0uMTE1LjE4LS4yNjQuMzE0LS40NDcuNDAxYTEuNTI1IDEuNTI1IDAgMDEtLjY2NC4xMzFjLS4yNyAwLS41MTYtLjA0Ny0uNzM4LS4xNDJhMS4yMjEgMS4yMjEgMCAwMS0uNTI5LS40MTYgMS4wODkgMS4wODkgMCAwMS0uMTk1LS42NDljMC0uMjYuMDc0LS40ODYuMjIxLS42NzlhMS40MyAxLjQzIDAgMDEuNTk3LS40NDYgMi4xMSAyLjExIDAgMDEuODI1LS4xNThjLjI3IDAgLjU0Ny4wNDUuODMyLjEzNS0uMDE1LS41NzUtLjI2LS44NjItLjczNS0uODYyLS4zOCAwLS42NTcuMTctLjgzMi41MWwtLjc0My0uNDI4Yy4xNC0uMjkuMzU1LS41MTguNjQ1LS42ODYuMjktLjE2Ny42My0uMjUxIDEuMDItLjI1MXptLjY0NSAyLjQwN2EyLjg1IDIuODUgMCAwMC0uNjUyLS4wOWMtLjI0NSAwLS40MzUuMDQ0LS41Ny4xMzJhLjQxOC40MTggMCAwMC0uMjAzLjM3MWMwIC4xNDUuMDU0LjI1Ny4xNjEuMzM3YS42OC42OCAwIDAwLjQxNy4xMi45Ni45NiAwIDAwLjU5Mi0uMTkuNjI0LjYyNCAwIDAwLjI1NS0uNTN2LS4xNXpNMTcuMDYgMTEuMDAxYy4xNSAwIC4yOS4wMjIuNDIuMDY3LjEzLjA0NS4yMy4xMDMuMy4xNzNsLS40MDUuODAyYS43NTkuNzU5IDAgMDAtLjQ0My0uMTM1Ljc2Mi43NjIgMCAwMC0uNjQ4LjMzOGMtLjE2My4yMjUtLjI0NC41MzUtLjI0NC45M3YxLjgwN2gtMS4wNDN2LTMuODg1aC45MTVjLjAyNS4zLjA0OC41MDUuMDY4LjYxNWExLjI5IDEuMjkgMCAwMS40NS0uNTMyYy4xODUtLjEyLjM5NS0uMTguNjMtLjE4ek0yMC45NDggMTQuNzU4Yy0uMjU2LjIxLS42MS4zMTUtMS4wNjYuMzE1LS40MiAwLS43NTgtLjExLTEuMDE2LS4zMzMtLjI1Ny0uMjIzLS4zODYtLjYyMi0uMzg2LTEuMTk3di0xLjU2N2gtLjY5di0uODc4aC42OVY5LjkwNmgxLjA0MnYxLjE5MmgxLjE3di44NzhoLTEuMTd2MS4zOTVjMCAuMjYuMDQ1LjQ1Ny4xMzUuNTkyLjA5LjEzNS4yMzUuMjAzLjQzNS4yMDMuMTc1IDAgLjM0LS4wNTMuNDk1LS4xNThsLjM2Ljc1eiIvPjwvZz48L2c+PC9zdmc+";
|
|
3338
3398
|
const imgStartPoint = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSIwJSIgeTE9IjUwJSIgeDI9IjEyOS41OTklIiB5Mj0iNTAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjMzZBOEZGIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iIzQ4NzFGMSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIgMzAuMjE1YzEuOTUgMCAzLjUzMi0uODE2IDMuNTMyLTEuODIzIDAtMS4wMDctMS41ODEtMS44MjMtMy41MzItMS44MjMtMS45NSAwLTMuNTMyLjgxNi0zLjUzMiAxLjgyMyAwIDEuMDA3IDEuNTgxIDEuODIzIDMuNTMyIDEuODIzeiIgZmlsbC1vcGFjaXR5PSIuNSIgZmlsbD0iIzQzNDg1QSIvPjxwYXRoIGQ9Ik0xMSAyN2MyLjEyOCAwLS45LTMuNzQyIDUuNjIxLTYuNjQxIDMuMjIxLTEuOTEgNS4zNzktNS40MSA1LjM3OS05LjQxMkMyMiA0LjkwMSAxNy4wNzUgMCAxMSAwUzAgNC45MDEgMCAxMC45NDdjMCAzLjkxOCAyLjA2OCA3LjM1NSA1LjE3NyA5LjI5QzExLjc1IDIzLjI3NyA5LjA2IDI3IDExIDI3eiIgc3Ryb2tlPSIjRkZGIiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMS4yMTUpIi8+PHRleHQgZm9udC1mYW1pbHk9IlBpbmdGYW5nU0MtU2VtaWJvbGQsIFBpbmdGYW5nIFNDIiBmb250LXNpemU9IjEyIiBmb250LXdlaWdodD0iNTAwIiBmaWxsPSIjRkZGIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEuMjE1KSI+PHRzcGFuIHg9IjUiIHk9IjE1LjYyNCI+6LW3PC90c3Bhbj48L3RleHQ+PC9nPjwvc3ZnPg==";
|
|
3339
3399
|
const StartEndPoint_css_ts_vanilla = "";
|
|
3340
3400
|
var arrowRight = createRuntimeFn({ defaultClassName: "_4a4ovka", variantClassNames: { withArrow: { true: "_4a4ovkb", false: "_4a4ovkc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
@@ -3354,9 +3414,10 @@ const AStartEndPoint = defineSetup(function AStartEndPoint2(props, {
|
|
|
3354
3414
|
withArrow = false,
|
|
3355
3415
|
title,
|
|
3356
3416
|
description,
|
|
3357
|
-
type: type2
|
|
3417
|
+
type: type2,
|
|
3418
|
+
language
|
|
3358
3419
|
} = props;
|
|
3359
|
-
const icon = type2 === "start" ? imgStartPoint : imgEndPoint;
|
|
3420
|
+
const icon = type2 === "start" ? language === "zh" ? imgStartPoint : imgStartPointEn : language === "zh" ? imgEndPoint : imgEndPointEn;
|
|
3360
3421
|
const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
|
|
3361
3422
|
if (!description && !title)
|
|
3362
3423
|
return `<img class="AStartEndPoint ${pointIcon({
|
|
@@ -3421,9 +3482,10 @@ const GStartEndPoint = defineSetup(function GStartEndPoint2(props, {
|
|
|
3421
3482
|
withArrow = false,
|
|
3422
3483
|
title,
|
|
3423
3484
|
description,
|
|
3424
|
-
type: type2
|
|
3485
|
+
type: type2,
|
|
3486
|
+
language = "zh"
|
|
3425
3487
|
} = props;
|
|
3426
|
-
const icon = type2 === "start" ? imgStartPoint : imgEndPoint;
|
|
3488
|
+
const icon = type2 === "start" ? language === "zh" ? imgStartPoint : imgStartPointEn : language === "zh" ? imgEndPoint : imgEndPointEn;
|
|
3427
3489
|
const descriptionRow = !description ? "" : decodeAsterisk(description).map((item) => item.type === "normal" ? item.value : `<span class="${pointInfoBoxEmphasize$1}">${item.value}</span>`).join("");
|
|
3428
3490
|
if (!description && !title)
|
|
3429
3491
|
return createDom("img", {
|
|
@@ -3505,6 +3567,9 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3505
3567
|
mapRef,
|
|
3506
3568
|
renderDescription
|
|
3507
3569
|
} = props;
|
|
3570
|
+
const {
|
|
3571
|
+
language
|
|
3572
|
+
} = useMapSupplier();
|
|
3508
3573
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
3509
3574
|
const deferedSetFitView = pipeDefer(registerOverlay.setFitView);
|
|
3510
3575
|
return () => {
|
|
@@ -3533,7 +3598,8 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3533
3598
|
"position": from,
|
|
3534
3599
|
"title": fromPlace.displayName,
|
|
3535
3600
|
"description": fromDescription,
|
|
3536
|
-
"withArrow": true
|
|
3601
|
+
"withArrow": true,
|
|
3602
|
+
"language": language
|
|
3537
3603
|
},
|
|
3538
3604
|
"on": {
|
|
3539
3605
|
"click": () => emit("clickStartPoint", fromPlace)
|
|
@@ -3560,7 +3626,8 @@ const BusinessQuotingMap = defineLagecySetup(function BusinessQuotingMap2(props,
|
|
|
3560
3626
|
distance,
|
|
3561
3627
|
duration
|
|
3562
3628
|
}),
|
|
3563
|
-
"withArrow": true
|
|
3629
|
+
"withArrow": true,
|
|
3630
|
+
"language": language
|
|
3564
3631
|
},
|
|
3565
3632
|
"on": {
|
|
3566
3633
|
"click": () => emit("clickEndPoint", toPlace)
|
|
@@ -3989,8 +4056,6 @@ const useGeoLocation = (props) => {
|
|
|
3989
4056
|
geoReady: readyRef
|
|
3990
4057
|
};
|
|
3991
4058
|
};
|
|
3992
|
-
const MAX_AMAP_PAN_TO_ANIMATE_DURATION = 500;
|
|
3993
|
-
const MIN_AMAP_PAN_TO_ANIMATE_DURATION = 100;
|
|
3994
4059
|
const useHeycarAmap = () => {
|
|
3995
4060
|
const amapRef = Vue.shallowRef();
|
|
3996
4061
|
const amapElementRef = Vue.shallowRef();
|
|
@@ -4007,10 +4072,7 @@ const useHeycarAmap = () => {
|
|
|
4007
4072
|
const distanceVw = apiMapDistanceVwOfPoints(value, [lng, lat]);
|
|
4008
4073
|
const shouldAnimate = distanceVw < MAX_ANIMATION_DISTANCE_VW;
|
|
4009
4074
|
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
|
-
);
|
|
4075
|
+
const duration = distanceVw2animationDuration(distanceVw);
|
|
4014
4076
|
amap2.panTo(value, duration);
|
|
4015
4077
|
await sleep(duration);
|
|
4016
4078
|
} else {
|
|
@@ -4136,6 +4198,49 @@ const useMapDrag = (props) => {
|
|
|
4136
4198
|
const { supplier } = useMapSupplier();
|
|
4137
4199
|
return supplier === "gmap" ? useGmapDrag(props) : useAmapDrag(props);
|
|
4138
4200
|
};
|
|
4201
|
+
const useAmapGeometry = () => {
|
|
4202
|
+
const payload = useMapSupplier();
|
|
4203
|
+
const apiMapDistance = (from, to) => {
|
|
4204
|
+
if (payload.status !== Status.SUCCESS)
|
|
4205
|
+
return void 0;
|
|
4206
|
+
return AMap.GeometryUtil.distance(from, to);
|
|
4207
|
+
};
|
|
4208
|
+
const apiMapDistanceToLine = (from, line) => {
|
|
4209
|
+
if (payload.status !== Status.SUCCESS)
|
|
4210
|
+
return void 0;
|
|
4211
|
+
return AMap.GeometryUtil.distanceToLine(from, line);
|
|
4212
|
+
};
|
|
4213
|
+
const apiMapIsPointInRing = (point, path) => {
|
|
4214
|
+
if (payload.status !== Status.SUCCESS)
|
|
4215
|
+
return void 0;
|
|
4216
|
+
return AMap.GeometryUtil.isPointInRing(point, path);
|
|
4217
|
+
};
|
|
4218
|
+
return { apiMapDistance, apiMapDistanceToLine, apiMapIsPointInRing };
|
|
4219
|
+
};
|
|
4220
|
+
const useGmapGeometry = () => {
|
|
4221
|
+
const payload = useMapSupplier();
|
|
4222
|
+
const apiMapDistance = (from, to) => {
|
|
4223
|
+
if (payload.status !== Status.SUCCESS)
|
|
4224
|
+
return void 0;
|
|
4225
|
+
return google.maps.geometry.spherical.computeDistanceBetween(vec2lnglat(from), vec2lnglat(to));
|
|
4226
|
+
};
|
|
4227
|
+
const apiMapDistanceToLine = (from, line) => {
|
|
4228
|
+
if (payload.status !== Status.SUCCESS)
|
|
4229
|
+
return void 0;
|
|
4230
|
+
return 0;
|
|
4231
|
+
};
|
|
4232
|
+
const apiMapIsPointInRing = (point, path) => {
|
|
4233
|
+
if (payload.status !== Status.SUCCESS)
|
|
4234
|
+
return void 0;
|
|
4235
|
+
const polygon = new google.maps.Polygon({ paths: path.map(vec2lnglat) });
|
|
4236
|
+
return google.maps.geometry.poly.containsLocation(vec2lnglat(point), polygon);
|
|
4237
|
+
};
|
|
4238
|
+
return { apiMapDistance, apiMapDistanceToLine, apiMapIsPointInRing };
|
|
4239
|
+
};
|
|
4240
|
+
const useMapGeometry = () => {
|
|
4241
|
+
const { supplier } = useMapSupplier();
|
|
4242
|
+
return supplier === "gmap" ? useGmapGeometry() : useAmapGeometry();
|
|
4243
|
+
};
|
|
4139
4244
|
const chinaBounds = [
|
|
4140
4245
|
[
|
|
4141
4246
|
108.03446,
|
|
@@ -5655,12 +5760,9 @@ const useAmapPlace = (props) => {
|
|
|
5655
5760
|
place.name = value.name;
|
|
5656
5761
|
place.displayName = value.displayName;
|
|
5657
5762
|
};
|
|
5658
|
-
|
|
5659
|
-
() =>
|
|
5660
|
-
async () => {
|
|
5661
|
-
await readyPromise;
|
|
5763
|
+
const getPlaceByRegeo = ([lng, lat]) => {
|
|
5764
|
+
return new Promise((resolve, reject) => {
|
|
5662
5765
|
const geocoder = new AMap.Geocoder({ lang: language === "en" ? "en" : "zh_cn" });
|
|
5663
|
-
const [lng, lat] = pointRef.value;
|
|
5664
5766
|
const isChina = inChina([lng, lat]);
|
|
5665
5767
|
geocoder.getAddress(new AMap.LngLat(lng, lat), (status, result) => {
|
|
5666
5768
|
switch (status) {
|
|
@@ -5668,30 +5770,30 @@ const useAmapPlace = (props) => {
|
|
|
5668
5770
|
const { formattedAddress, addressComponent } = result.regeocode;
|
|
5669
5771
|
const name2 = formattedAddress ? formattedAddress : emptyPlaceName;
|
|
5670
5772
|
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 });
|
|
5773
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5676
5774
|
return;
|
|
5677
5775
|
}
|
|
5678
5776
|
case "no_data": {
|
|
5679
5777
|
const name2 = emptyPlaceName;
|
|
5680
5778
|
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 });
|
|
5779
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5686
5780
|
return;
|
|
5687
5781
|
}
|
|
5688
5782
|
case "error":
|
|
5689
|
-
|
|
5783
|
+
reject(result);
|
|
5690
5784
|
}
|
|
5691
5785
|
});
|
|
5786
|
+
});
|
|
5787
|
+
};
|
|
5788
|
+
Vue.watch(
|
|
5789
|
+
() => [placeKey.value],
|
|
5790
|
+
async () => {
|
|
5791
|
+
await readyPromise;
|
|
5792
|
+
const resultPlace = await getPlaceByRegeo(pointRef.value);
|
|
5793
|
+
onChange == null ? void 0 : onChange(resultPlace);
|
|
5692
5794
|
}
|
|
5693
5795
|
);
|
|
5694
|
-
return { place, updatePlace, setPlace };
|
|
5796
|
+
return { place, updatePlace, setPlace, getPlaceByRegeo };
|
|
5695
5797
|
};
|
|
5696
5798
|
const useGmapPlace = (props) => {
|
|
5697
5799
|
const { onChange, emptyPlaceName } = props;
|
|
@@ -5715,214 +5817,182 @@ const useGmapPlace = (props) => {
|
|
|
5715
5817
|
place.name = value.name;
|
|
5716
5818
|
place.displayName = value.displayName;
|
|
5717
5819
|
};
|
|
5820
|
+
const getPlaceByRegeo = ([lng, lat]) => {
|
|
5821
|
+
return new Promise((resolve, reject) => {
|
|
5822
|
+
const geocoder = new google.maps.Geocoder();
|
|
5823
|
+
geocoder.geocode({ language, location: { lng, lat } }).then(({ results }) => {
|
|
5824
|
+
const name2 = results[0].formatted_address ? results[0].formatted_address : emptyPlaceName;
|
|
5825
|
+
const displayName = name2;
|
|
5826
|
+
resolve({ lng, lat, name: name2, displayName });
|
|
5827
|
+
}).catch(reject);
|
|
5828
|
+
});
|
|
5829
|
+
};
|
|
5718
5830
|
Vue.watch(
|
|
5719
5831
|
() => placeKey.value,
|
|
5720
5832
|
async () => {
|
|
5721
5833
|
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 });
|
|
5834
|
+
const resultPlace = await getPlaceByRegeo(pointRef.value);
|
|
5835
|
+
onChange == null ? void 0 : onChange(resultPlace);
|
|
5732
5836
|
}
|
|
5733
5837
|
);
|
|
5734
|
-
return { place, updatePlace, setPlace };
|
|
5838
|
+
return { place, updatePlace, setPlace, getPlaceByRegeo };
|
|
5735
5839
|
};
|
|
5736
5840
|
const useMapPlace = (props) => {
|
|
5737
5841
|
const { supplier } = useMapSupplier();
|
|
5738
5842
|
return supplier === "gmap" ? useGmapPlace(props) : useAmapPlace(props);
|
|
5739
5843
|
};
|
|
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) => {
|
|
5844
|
+
function findNearestPlace(place, candidates, distanceFn) {
|
|
5845
|
+
var _a;
|
|
5753
5846
|
let shortestDistance = Infinity;
|
|
5754
5847
|
let shortestPlace = place;
|
|
5755
5848
|
for (const candidate of candidates) {
|
|
5756
|
-
const distance =
|
|
5849
|
+
const distance = (_a = distanceFn(place2point(place), place2point(candidate))) != null ? _a : Infinity;
|
|
5757
5850
|
if (distance >= shortestDistance)
|
|
5758
5851
|
continue;
|
|
5759
5852
|
shortestPlace = candidate;
|
|
5760
5853
|
shortestDistance = distance;
|
|
5761
5854
|
}
|
|
5762
5855
|
return { shortestPlace, shortestDistance };
|
|
5763
|
-
}
|
|
5764
|
-
const
|
|
5765
|
-
const {
|
|
5856
|
+
}
|
|
5857
|
+
const useMapRecomendPlace = (props) => {
|
|
5858
|
+
const {
|
|
5859
|
+
defaultPoint,
|
|
5860
|
+
getRecomendPlace,
|
|
5861
|
+
getLimit,
|
|
5862
|
+
context: context2,
|
|
5863
|
+
emptyPlaceName,
|
|
5864
|
+
onChange,
|
|
5865
|
+
onChangePlace
|
|
5866
|
+
} = props;
|
|
5766
5867
|
const availableRef = Vue.ref(true);
|
|
5767
5868
|
const placeCandidatesRef = Vue.ref([]);
|
|
5768
5869
|
const zoneRef = Vue.ref();
|
|
5769
|
-
const {
|
|
5770
|
-
const {
|
|
5771
|
-
const { place, updatePlace, setPlace } = useAmapPlace({
|
|
5870
|
+
const { apiMapIsPointInRing, apiMapDistance } = useMapGeometry();
|
|
5871
|
+
const { getPlaceByRegeo } = useAmapPlace({
|
|
5772
5872
|
emptyPlaceName,
|
|
5773
|
-
pointRef
|
|
5774
|
-
|
|
5873
|
+
pointRef: Vue.ref([...defaultPoint])
|
|
5874
|
+
});
|
|
5875
|
+
const recomendPlace = Vue.reactive({
|
|
5876
|
+
lng: defaultPoint[0],
|
|
5877
|
+
lat: defaultPoint[1],
|
|
5878
|
+
name: "",
|
|
5879
|
+
displayName: ""
|
|
5775
5880
|
});
|
|
5776
|
-
const recomendPlace = Vue.reactive({ ...place });
|
|
5777
5881
|
const isElectedRef = Vue.computed(() => {
|
|
5778
|
-
const
|
|
5882
|
+
const recomendPoint = place2point(recomendPlace);
|
|
5779
5883
|
return placeCandidatesRef.value.some(
|
|
5780
|
-
(candidate) => isPointEqual(place2point(candidate),
|
|
5884
|
+
(candidate) => isPointEqual(place2point(candidate), recomendPoint)
|
|
5781
5885
|
);
|
|
5782
5886
|
});
|
|
5783
|
-
const
|
|
5887
|
+
const findAttachedPlace = async (place) => {
|
|
5784
5888
|
var _a;
|
|
5889
|
+
const inputRecommendZonePlaces = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5785
5890
|
const {
|
|
5786
|
-
places:
|
|
5891
|
+
places: placeCandidates,
|
|
5787
5892
|
zone,
|
|
5788
|
-
available
|
|
5789
|
-
} = (
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5893
|
+
available = false
|
|
5894
|
+
} = toRecommendZonePlacesType(inputRecommendZonePlaces);
|
|
5895
|
+
if (!available || !placeCandidates) {
|
|
5896
|
+
return { place: { ...place }, zone, candidates: [], available };
|
|
5897
|
+
}
|
|
5898
|
+
const { shortestPlace, shortestDistance } = findNearestPlace(
|
|
5899
|
+
place,
|
|
5900
|
+
placeCandidates,
|
|
5901
|
+
apiMapDistance
|
|
5902
|
+
);
|
|
5903
|
+
const limit = getLimit(context2);
|
|
5904
|
+
const resultPlace = zone || shortestDistance <= limit ? shortestPlace : place;
|
|
5905
|
+
return { place: { ...resultPlace }, zone, candidates: placeCandidates, available };
|
|
5906
|
+
};
|
|
5907
|
+
const getRecommendPlaceZoneState = async (point, prevState) => {
|
|
5908
|
+
const zone = zoneRef.value;
|
|
5909
|
+
if (!zone || !apiMapIsPointInRing(point, zone.path)) {
|
|
5910
|
+
const reGeoPlace = await getPlaceByRegeo(point);
|
|
5911
|
+
const {
|
|
5912
|
+
place: resultPlace2,
|
|
5913
|
+
candidates,
|
|
5914
|
+
available,
|
|
5915
|
+
zone: zone2
|
|
5916
|
+
} = await findAttachedPlace(reGeoPlace);
|
|
5917
|
+
return { place: { ...resultPlace2 }, zone: zone2, available, candidates };
|
|
5918
|
+
}
|
|
5919
|
+
const [lng, lat] = point;
|
|
5920
|
+
const { shortestPlace: resultPlace } = findNearestPlace(
|
|
5921
|
+
{ lng, lat, name: "", displayName: "" },
|
|
5922
|
+
placeCandidatesRef.value,
|
|
5923
|
+
apiMapDistance
|
|
5924
|
+
);
|
|
5794
5925
|
return {
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
|
|
5926
|
+
place: { ...resultPlace },
|
|
5927
|
+
zone,
|
|
5928
|
+
available: prevState.available,
|
|
5929
|
+
candidates: prevState.candidates
|
|
5798
5930
|
};
|
|
5799
5931
|
};
|
|
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
|
|
5932
|
+
const updatePlace = async (point) => {
|
|
5933
|
+
const {
|
|
5934
|
+
place: resultPlace,
|
|
5935
|
+
candidates,
|
|
5936
|
+
zone,
|
|
5937
|
+
available
|
|
5938
|
+
} = await getRecommendPlaceZoneState(point, {
|
|
5939
|
+
place: recomendPlace,
|
|
5940
|
+
available: availableRef.value,
|
|
5941
|
+
candidates: placeCandidatesRef.value,
|
|
5942
|
+
zone: zoneRef.value
|
|
5943
|
+
});
|
|
5944
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5945
|
+
availableRef.value = available;
|
|
5946
|
+
zoneRef.value = zone;
|
|
5947
|
+
placeCandidatesRef.value = candidates;
|
|
5948
|
+
Object.assign(recomendPlace, { ...resultPlace });
|
|
5949
|
+
onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
|
|
5950
|
+
const inputPlace = { name: "", displayName: "", lng: point[0], lat: point[1] };
|
|
5951
|
+
onChange == null ? void 0 : onChange({ place: { ...resultPlace }, inputPlace, isInZone: !!zone, isSameZone });
|
|
5851
5952
|
};
|
|
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) => {
|
|
5953
|
+
const updatePlaceCandidates = async (place) => {
|
|
5873
5954
|
var _a;
|
|
5955
|
+
const inputRecommendZonePlaces = (_a = await getRecomendPlace({ ...place }, context2)) != null ? _a : {};
|
|
5874
5956
|
const {
|
|
5875
|
-
places:
|
|
5957
|
+
places: placeCandidates,
|
|
5876
5958
|
zone,
|
|
5877
|
-
available
|
|
5878
|
-
} = (
|
|
5879
|
-
const
|
|
5959
|
+
available = false
|
|
5960
|
+
} = toRecommendZonePlacesType(inputRecommendZonePlaces);
|
|
5961
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5880
5962
|
availableRef.value = !!available;
|
|
5881
5963
|
zoneRef.value = zone;
|
|
5882
5964
|
placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
|
|
5883
5965
|
return {
|
|
5884
|
-
inputPlace: { ...
|
|
5966
|
+
inputPlace: { ...place },
|
|
5885
5967
|
isInZone: !!zone,
|
|
5886
|
-
place
|
|
5968
|
+
place,
|
|
5969
|
+
isSameZone
|
|
5887
5970
|
};
|
|
5888
5971
|
};
|
|
5889
|
-
const updateRecommendPlace = (
|
|
5890
|
-
|
|
5891
|
-
|
|
5972
|
+
const updateRecommendPlace = async (place) => {
|
|
5973
|
+
const { place: resultPlace, candidates, available, zone } = await findAttachedPlace(place);
|
|
5974
|
+
const isSameZone = !!zone && isZoneEqual(zone, zoneRef.value);
|
|
5975
|
+
availableRef.value = available;
|
|
5976
|
+
zoneRef.value = zone;
|
|
5977
|
+
placeCandidatesRef.value = candidates;
|
|
5978
|
+
Object.assign(recomendPlace, { ...resultPlace });
|
|
5979
|
+
onChangePlace == null ? void 0 : onChangePlace({ ...resultPlace });
|
|
5980
|
+
onChange == null ? void 0 : onChange({
|
|
5981
|
+
place: { ...resultPlace },
|
|
5982
|
+
inputPlace: { ...place },
|
|
5983
|
+
isInZone: !!zone,
|
|
5984
|
+
isSameZone
|
|
5985
|
+
});
|
|
5892
5986
|
};
|
|
5893
|
-
const setPlaceCandidatesAndZone = ({
|
|
5894
|
-
|
|
5987
|
+
const setPlaceCandidatesAndZone = ({
|
|
5988
|
+
zone,
|
|
5989
|
+
places: inputPlaceCandidates
|
|
5990
|
+
}) => {
|
|
5991
|
+
const placeCandidates = inputPlaceCandidates == null ? void 0 : inputPlaceCandidates.map(toPlaceType);
|
|
5992
|
+
availableRef.value = true;
|
|
5895
5993
|
zoneRef.value = zone ? zone : void 0;
|
|
5994
|
+
placeCandidatesRef.value = placeCandidates != null ? placeCandidates : [];
|
|
5896
5995
|
};
|
|
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
5996
|
return {
|
|
5927
5997
|
zoneRef,
|
|
5928
5998
|
recomendPlace,
|
|
@@ -5935,20 +6005,19 @@ const useGmapRecomendPlace = (props) => {
|
|
|
5935
6005
|
setPlaceCandidatesAndZone
|
|
5936
6006
|
};
|
|
5937
6007
|
};
|
|
5938
|
-
const useMapRecomendPlace = (props) => {
|
|
5939
|
-
const { supplier } = useMapSupplier();
|
|
5940
|
-
return supplier === "gmap" ? useGmapRecomendPlace(props) : useAmapRecomendPlace(props);
|
|
5941
|
-
};
|
|
5942
6008
|
const GOOGLE_MAP_ZOOM_CHANGE_DEBOUNCE_TIMEOUT = 50;
|
|
5943
6009
|
const DEFAULT_ZOOM$1 = 13;
|
|
5944
6010
|
const useAmapZoom = (props) => {
|
|
5945
6011
|
var _a, _b, _c;
|
|
5946
6012
|
const { onChange, mapRef, defaultValue } = props;
|
|
5947
6013
|
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;
|
|
6014
|
+
const setZoom = (v, immediate = false) => {
|
|
6015
|
+
var _a2, _b2;
|
|
6016
|
+
const duration = deltaZoom2animationDuration(v - zoomRef.value);
|
|
5950
6017
|
zoomRef.value = v;
|
|
5951
|
-
|
|
6018
|
+
if (immediate)
|
|
6019
|
+
return (_a2 = mapRef.value) == null ? void 0 : _a2.setZoom(v, true);
|
|
6020
|
+
(_b2 = mapRef.value) == null ? void 0 : _b2.setZoom(v, false, duration);
|
|
5952
6021
|
};
|
|
5953
6022
|
const handleZoomEnd = (_, { target }) => {
|
|
5954
6023
|
const zoom = target.getZoom();
|
|
@@ -6680,7 +6749,6 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6680
6749
|
name: geoLoadingTitle,
|
|
6681
6750
|
displayName: geoLoadingTitle
|
|
6682
6751
|
});
|
|
6683
|
-
const centerPoint = Vue.computed(() => [centerPlace.lng, centerPlace.lat]);
|
|
6684
6752
|
const centerSource = {
|
|
6685
6753
|
source: "geo"
|
|
6686
6754
|
};
|
|
@@ -6691,25 +6759,20 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6691
6759
|
const setCenterPlaceByUserSpecified = async (input) => {
|
|
6692
6760
|
centerSource.source = "api";
|
|
6693
6761
|
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
|
-
});
|
|
6762
|
+
Object.assign(centerPlace, place);
|
|
6701
6763
|
updateRecommendPlace(place);
|
|
6702
6764
|
};
|
|
6703
|
-
const setCenterPlaceByUserSpecifiedInZone = ({
|
|
6704
|
-
place,
|
|
6705
|
-
recommends
|
|
6765
|
+
const setCenterPlaceByUserSpecifiedInZone = async ({
|
|
6766
|
+
place: inputPlace,
|
|
6767
|
+
recommends: inputRecommends
|
|
6706
6768
|
}) => {
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6769
|
+
const place = toPlaceType(inputPlace);
|
|
6770
|
+
const recommends = toRecommendZonePlacesType(inputRecommends);
|
|
6771
|
+
const isSameZone = recommends.zone && isZoneEqual(recommends.zone, zoneRef.value);
|
|
6772
|
+
if (!isSameZone)
|
|
6773
|
+
setZoom(ZONE_ZOOM);
|
|
6774
|
+
Object.assign(centerPlace, place);
|
|
6711
6775
|
setPlaceCandidatesAndZone(recommends);
|
|
6712
|
-
setZoom(ZONE_ZOOM);
|
|
6713
6776
|
emit("changePlace", {
|
|
6714
6777
|
...place
|
|
6715
6778
|
});
|
|
@@ -6717,12 +6780,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6717
6780
|
const panToCenterByPlace = async (place) => {
|
|
6718
6781
|
centerSource.source = "api";
|
|
6719
6782
|
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);
|
|
6783
|
+
Object.assign(centerPlace, place);
|
|
6726
6784
|
emit("changePlace", {
|
|
6727
6785
|
...place
|
|
6728
6786
|
});
|
|
@@ -6733,7 +6791,8 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6733
6791
|
inputPlace: {
|
|
6734
6792
|
...place
|
|
6735
6793
|
},
|
|
6736
|
-
isInZone: !!zoneRef.value
|
|
6794
|
+
isInZone: !!zoneRef.value,
|
|
6795
|
+
isSameZone: !!zoneRef.value
|
|
6737
6796
|
});
|
|
6738
6797
|
};
|
|
6739
6798
|
const defaultCenterPlacePromise = new Promise((resolve) => {
|
|
@@ -6751,18 +6810,21 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6751
6810
|
} = useGeoLocation({
|
|
6752
6811
|
geoDefaultPosition,
|
|
6753
6812
|
onLoad: async (value) => {
|
|
6813
|
+
const [lng, lat] = value.position;
|
|
6754
6814
|
await readyPromise;
|
|
6755
6815
|
centerSource.source = "geo";
|
|
6816
|
+
centerPlace.lng = lng;
|
|
6817
|
+
centerPlace.lat = lat;
|
|
6756
6818
|
updatePlace(value.position);
|
|
6757
6819
|
emit("loadGeoLocation", value);
|
|
6758
6820
|
},
|
|
6759
6821
|
onLoadDefault: async (value) => {
|
|
6760
6822
|
await readyPromise;
|
|
6761
|
-
const
|
|
6823
|
+
const inputPlace = await defaultCenterPlacePromise;
|
|
6762
6824
|
centerSource.source = "geo";
|
|
6763
6825
|
emit("loadDefaultGeoLocation", value);
|
|
6764
|
-
if (
|
|
6765
|
-
await setCenterPlaceByUserSpecified(
|
|
6826
|
+
if (inputPlace) {
|
|
6827
|
+
await setCenterPlaceByUserSpecified(inputPlace);
|
|
6766
6828
|
} else {
|
|
6767
6829
|
updatePlace(value.position);
|
|
6768
6830
|
}
|
|
@@ -6797,7 +6859,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6797
6859
|
availableRef,
|
|
6798
6860
|
isElectedRef
|
|
6799
6861
|
} = useMapRecomendPlace({
|
|
6800
|
-
|
|
6862
|
+
defaultPoint: place2point(centerPlace),
|
|
6801
6863
|
emptyPlaceName: DEFAULT_PLACE_NAME,
|
|
6802
6864
|
context: centerSource,
|
|
6803
6865
|
getRecomendPlace: pipedGetRecomendPlace,
|
|
@@ -6814,16 +6876,12 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6814
6876
|
throw new Error(`MyError: should not call getLimit on source: ${source}`);
|
|
6815
6877
|
}
|
|
6816
6878
|
},
|
|
6817
|
-
onChangePlace: (place) =>
|
|
6818
|
-
if (centerSource.source !== "recomend") {
|
|
6819
|
-
updateRecommendPlace(place);
|
|
6820
|
-
}
|
|
6821
|
-
emit("changePlace", place);
|
|
6822
|
-
},
|
|
6879
|
+
onChangePlace: (place) => emit("changePlace", place),
|
|
6823
6880
|
onChange: async ({
|
|
6824
6881
|
place,
|
|
6825
6882
|
inputPlace,
|
|
6826
|
-
isInZone
|
|
6883
|
+
isInZone,
|
|
6884
|
+
isSameZone
|
|
6827
6885
|
}) => {
|
|
6828
6886
|
centerSource.source = "recomend";
|
|
6829
6887
|
if (isPlaceEqual(place, centerPlace))
|
|
@@ -6831,12 +6889,13 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6831
6889
|
Object.assign(centerPlace, {
|
|
6832
6890
|
...place
|
|
6833
6891
|
});
|
|
6834
|
-
if (isInZone)
|
|
6892
|
+
if (isInZone && !isSameZone)
|
|
6835
6893
|
setZoom(ZONE_ZOOM);
|
|
6836
6894
|
emit("changeRecomandPlace", {
|
|
6837
6895
|
place,
|
|
6838
6896
|
inputPlace,
|
|
6839
|
-
isInZone
|
|
6897
|
+
isInZone,
|
|
6898
|
+
isSameZone
|
|
6840
6899
|
});
|
|
6841
6900
|
}
|
|
6842
6901
|
});
|
|
@@ -6859,7 +6918,7 @@ const BusinessRecomendPlaceMap = defineLagecySetup(function BusinessRecomendPlac
|
|
|
6859
6918
|
const description = !availableRef.value ? void 0 : isElectedRef.value ? recomendDescription : void 0;
|
|
6860
6919
|
return Vue.h(HeycarMap, {
|
|
6861
6920
|
"attrs": {
|
|
6862
|
-
"center":
|
|
6921
|
+
"center": place2point(centerPlace),
|
|
6863
6922
|
"zoom": zoomRef.value,
|
|
6864
6923
|
"touchZoomCenter": true,
|
|
6865
6924
|
"mapRef": setMap,
|
|
@@ -6935,7 +6994,6 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6935
6994
|
name: defaultPlace.name,
|
|
6936
6995
|
displayName: defaultPlace.displayName
|
|
6937
6996
|
});
|
|
6938
|
-
const centerPoint = Vue.computed(() => [centerPlace.lng, centerPlace.lat]);
|
|
6939
6997
|
const centerSource = {
|
|
6940
6998
|
source: "default"
|
|
6941
6999
|
};
|
|
@@ -6946,24 +7004,19 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6946
7004
|
const setCenterPlaceByUserSpecified = async (input) => {
|
|
6947
7005
|
centerSource.source = "api";
|
|
6948
7006
|
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
|
-
});
|
|
7007
|
+
Object.assign(centerPlace, place);
|
|
6956
7008
|
updateRecommendPlace(place);
|
|
6957
7009
|
};
|
|
6958
|
-
const setCenterPlaceByUserSpecifiedInZone = ({
|
|
6959
|
-
place,
|
|
6960
|
-
recommends
|
|
7010
|
+
const setCenterPlaceByUserSpecifiedInZone = async ({
|
|
7011
|
+
place: inputPlace,
|
|
7012
|
+
recommends: inputRecommends
|
|
6961
7013
|
}) => {
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
7014
|
+
const place = toPlaceType(inputPlace);
|
|
7015
|
+
const recommends = toRecommendZonePlacesType(inputRecommends);
|
|
7016
|
+
const isSameZone = recommends.zone && isZoneEqual(recommends.zone, zoneRef.value);
|
|
7017
|
+
if (!isSameZone)
|
|
7018
|
+
setZoom(ZONE_ZOOM);
|
|
7019
|
+
Object.assign(centerPlace, place);
|
|
6967
7020
|
setPlaceCandidatesAndZone(recommends);
|
|
6968
7021
|
emit("changePlace", {
|
|
6969
7022
|
...place
|
|
@@ -6972,12 +7025,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6972
7025
|
const panToCenterByPlace = async (place) => {
|
|
6973
7026
|
centerSource.source = "api";
|
|
6974
7027
|
await panTo(place2point(place));
|
|
6975
|
-
centerPlace
|
|
6976
|
-
centerPlace.lat = place.lat;
|
|
6977
|
-
centerPlace.name = place.name;
|
|
6978
|
-
centerPlace.displayName = place.displayName;
|
|
6979
|
-
if (zoneRef.value)
|
|
6980
|
-
setZoom(ZONE_ZOOM);
|
|
7028
|
+
Object.assign(centerPlace, place);
|
|
6981
7029
|
emit("changePlace", {
|
|
6982
7030
|
...place
|
|
6983
7031
|
});
|
|
@@ -6988,7 +7036,8 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
6988
7036
|
inputPlace: {
|
|
6989
7037
|
...place
|
|
6990
7038
|
},
|
|
6991
|
-
isInZone: !!zoneRef.value
|
|
7039
|
+
isInZone: !!zoneRef.value,
|
|
7040
|
+
isSameZone: !!zoneRef.value
|
|
6992
7041
|
});
|
|
6993
7042
|
};
|
|
6994
7043
|
const {
|
|
@@ -7031,7 +7080,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7031
7080
|
availableRef,
|
|
7032
7081
|
isElectedRef
|
|
7033
7082
|
} = useMapRecomendPlace({
|
|
7034
|
-
|
|
7083
|
+
defaultPoint: place2point(centerPlace),
|
|
7035
7084
|
emptyPlaceName: DEFAULT_PLACE_NAME,
|
|
7036
7085
|
context: centerSource,
|
|
7037
7086
|
getRecomendPlace: pipedGetRecomendPlace,
|
|
@@ -7048,16 +7097,12 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7048
7097
|
throw new Error(`MyError: should not call getLimit on source: ${source}`);
|
|
7049
7098
|
}
|
|
7050
7099
|
},
|
|
7051
|
-
onChangePlace: (place) =>
|
|
7052
|
-
if (centerSource.source !== "recomend") {
|
|
7053
|
-
updateRecommendPlace(place);
|
|
7054
|
-
}
|
|
7055
|
-
emit("changePlace", place);
|
|
7056
|
-
},
|
|
7100
|
+
onChangePlace: (place) => emit("changePlace", place),
|
|
7057
7101
|
onChange: async ({
|
|
7058
7102
|
place,
|
|
7059
7103
|
inputPlace,
|
|
7060
|
-
isInZone
|
|
7104
|
+
isInZone,
|
|
7105
|
+
isSameZone
|
|
7061
7106
|
}) => {
|
|
7062
7107
|
centerSource.source = "recomend";
|
|
7063
7108
|
if (isPlaceEqual(place, centerPlace))
|
|
@@ -7065,12 +7110,13 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7065
7110
|
Object.assign(centerPlace, {
|
|
7066
7111
|
...place
|
|
7067
7112
|
});
|
|
7068
|
-
if (isInZone)
|
|
7113
|
+
if (isInZone && !isSameZone)
|
|
7069
7114
|
setZoom(ZONE_ZOOM);
|
|
7070
7115
|
emit("changeRecomandPlace", {
|
|
7071
7116
|
place,
|
|
7072
7117
|
inputPlace,
|
|
7073
|
-
isInZone
|
|
7118
|
+
isInZone,
|
|
7119
|
+
isSameZone
|
|
7074
7120
|
});
|
|
7075
7121
|
}
|
|
7076
7122
|
});
|
|
@@ -7096,7 +7142,7 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7096
7142
|
const description = !availableRef.value ? void 0 : isElectedRef.value ? recomendDescription : void 0;
|
|
7097
7143
|
return Vue.h(HeycarMap, {
|
|
7098
7144
|
"attrs": {
|
|
7099
|
-
"center":
|
|
7145
|
+
"center": place2point(centerPlace),
|
|
7100
7146
|
"zoom": zoomRef.value,
|
|
7101
7147
|
"touchZoomCenter": true,
|
|
7102
7148
|
"mapRef": setMap,
|
|
@@ -7131,38 +7177,6 @@ const BusinessReselectPlaceMap = defineLagecySetup(function BusinessReselectPlac
|
|
|
7131
7177
|
})]);
|
|
7132
7178
|
};
|
|
7133
7179
|
}).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
7180
|
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
7181
|
const TaxiCar_css_ts_vanilla = "";
|
|
7168
7182
|
var carIcon = "_65j3sr1";
|
|
@@ -7516,12 +7530,16 @@ const SectionDispatching = defineSetup(function SectionDispatching2(props) {
|
|
|
7516
7530
|
title,
|
|
7517
7531
|
registerOverlay
|
|
7518
7532
|
} = props;
|
|
7533
|
+
const {
|
|
7534
|
+
language
|
|
7535
|
+
} = useMapSupplier();
|
|
7519
7536
|
const from = place2point(fromPlace);
|
|
7520
7537
|
return Vue.h("div", [Vue.h(StartEndPoint, {
|
|
7521
7538
|
"attrs": {
|
|
7522
7539
|
"type": "start",
|
|
7523
7540
|
"position": from,
|
|
7524
7541
|
"title": title,
|
|
7542
|
+
"language": language,
|
|
7525
7543
|
"registerOverlay": registerOverlay
|
|
7526
7544
|
}
|
|
7527
7545
|
}), Vue.h(WaveCircle, {
|
|
@@ -7547,6 +7565,9 @@ const SectionDispatching = defineSetup(function SectionDispatching2(props) {
|
|
|
7547
7565
|
};
|
|
7548
7566
|
});
|
|
7549
7567
|
const SectionConfirmed = defineSetup(function SectionConfirmed2(props) {
|
|
7568
|
+
const {
|
|
7569
|
+
language
|
|
7570
|
+
} = useMapSupplier();
|
|
7550
7571
|
const {
|
|
7551
7572
|
apiMapDistance
|
|
7552
7573
|
} = useMapGeometry();
|
|
@@ -7584,13 +7605,15 @@ const SectionConfirmed = defineSetup(function SectionConfirmed2(props) {
|
|
|
7584
7605
|
"attrs": {
|
|
7585
7606
|
"type": "start",
|
|
7586
7607
|
"registerOverlay": registerOverlay,
|
|
7587
|
-
"position": from
|
|
7608
|
+
"position": from,
|
|
7609
|
+
"language": language
|
|
7588
7610
|
}
|
|
7589
7611
|
}), Vue.h(StartEndPoint, {
|
|
7590
7612
|
"attrs": {
|
|
7591
7613
|
"type": "end",
|
|
7592
7614
|
"registerOverlay": registerOverlay,
|
|
7593
|
-
"position": to
|
|
7615
|
+
"position": to,
|
|
7616
|
+
"language": language
|
|
7594
7617
|
}
|
|
7595
7618
|
}), Vue.h(PlaceCircle, {
|
|
7596
7619
|
"attrs": {
|
|
@@ -7621,6 +7644,9 @@ const SectionDriverStartService = defineSetup(function SectionDriverStartService
|
|
|
7621
7644
|
registerOverlay
|
|
7622
7645
|
} = props;
|
|
7623
7646
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
7647
|
+
const {
|
|
7648
|
+
language
|
|
7649
|
+
} = useMapSupplier();
|
|
7624
7650
|
const {
|
|
7625
7651
|
apiMapDistance
|
|
7626
7652
|
} = useMapGeometry();
|
|
@@ -7647,7 +7673,8 @@ const SectionDriverStartService = defineSetup(function SectionDriverStartService
|
|
|
7647
7673
|
"attrs": {
|
|
7648
7674
|
"type": "start",
|
|
7649
7675
|
"position": from,
|
|
7650
|
-
"registerOverlay": registerOverlay
|
|
7676
|
+
"registerOverlay": registerOverlay,
|
|
7677
|
+
"language": language
|
|
7651
7678
|
}
|
|
7652
7679
|
}), Vue.h(PlaceCircle, {
|
|
7653
7680
|
"attrs": {
|
|
@@ -7722,6 +7749,9 @@ const SectionBookDispatched = defineSetup(function SectionBookDispatched2(props)
|
|
|
7722
7749
|
const {
|
|
7723
7750
|
apiMapDistance
|
|
7724
7751
|
} = useMapGeometry();
|
|
7752
|
+
const {
|
|
7753
|
+
language
|
|
7754
|
+
} = useMapSupplier();
|
|
7725
7755
|
return () => {
|
|
7726
7756
|
const {
|
|
7727
7757
|
from: fromPlace,
|
|
@@ -7768,13 +7798,15 @@ const SectionBookDispatched = defineSetup(function SectionBookDispatched2(props)
|
|
|
7768
7798
|
"attrs": {
|
|
7769
7799
|
"type": "start",
|
|
7770
7800
|
"registerOverlay": registerOverlay,
|
|
7771
|
-
"position": from
|
|
7801
|
+
"position": from,
|
|
7802
|
+
"language": language
|
|
7772
7803
|
}
|
|
7773
7804
|
}), Vue.h(StartEndPoint, {
|
|
7774
7805
|
"attrs": {
|
|
7775
7806
|
"type": "end",
|
|
7776
7807
|
"registerOverlay": registerOverlay,
|
|
7777
|
-
"position": to
|
|
7808
|
+
"position": to,
|
|
7809
|
+
"language": language
|
|
7778
7810
|
}
|
|
7779
7811
|
}), Vue.h(PlaceCircle, {
|
|
7780
7812
|
"attrs": {
|
|
@@ -7805,6 +7837,9 @@ const SectionDriverArrived = defineSetup(function SectionDriverArrived2(props) {
|
|
|
7805
7837
|
registerOverlay
|
|
7806
7838
|
} = props;
|
|
7807
7839
|
const fittableRegistryOverlay = createFittableRegisterOverlay(registerOverlay);
|
|
7840
|
+
const {
|
|
7841
|
+
language
|
|
7842
|
+
} = useMapSupplier();
|
|
7808
7843
|
const {
|
|
7809
7844
|
apiMapDistance
|
|
7810
7845
|
} = useMapGeometry();
|
|
@@ -7849,7 +7884,8 @@ const SectionDriverArrived = defineSetup(function SectionDriverArrived2(props) {
|
|
|
7849
7884
|
"attrs": {
|
|
7850
7885
|
"type": "start",
|
|
7851
7886
|
"position": from,
|
|
7852
|
-
"registerOverlay": registerOverlay
|
|
7887
|
+
"registerOverlay": registerOverlay,
|
|
7888
|
+
"language": language
|
|
7853
7889
|
}
|
|
7854
7890
|
}), Vue.h(PlaceCircle, {
|
|
7855
7891
|
"attrs": {
|
|
@@ -7882,6 +7918,9 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7882
7918
|
renderTitle
|
|
7883
7919
|
} = props;
|
|
7884
7920
|
const to = place2point(toPlace);
|
|
7921
|
+
const {
|
|
7922
|
+
language
|
|
7923
|
+
} = useMapSupplier();
|
|
7885
7924
|
const {
|
|
7886
7925
|
apiMapDistance
|
|
7887
7926
|
} = useMapGeometry();
|
|
@@ -7929,7 +7968,8 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7929
7968
|
"attrs": {
|
|
7930
7969
|
"type": "end",
|
|
7931
7970
|
"position": to,
|
|
7932
|
-
"registerOverlay": registerOverlay
|
|
7971
|
+
"registerOverlay": registerOverlay,
|
|
7972
|
+
"language": language
|
|
7933
7973
|
}
|
|
7934
7974
|
}), Vue.h(PlaceCircle, {
|
|
7935
7975
|
"attrs": {
|
|
@@ -7950,6 +7990,9 @@ const SectionInService = defineSetup(function SectionInService2(props) {
|
|
|
7950
7990
|
};
|
|
7951
7991
|
});
|
|
7952
7992
|
const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
7993
|
+
const {
|
|
7994
|
+
language
|
|
7995
|
+
} = useMapSupplier();
|
|
7953
7996
|
return () => {
|
|
7954
7997
|
const {
|
|
7955
7998
|
from: fromPlace,
|
|
@@ -7962,13 +8005,15 @@ const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
|
7962
8005
|
"attrs": {
|
|
7963
8006
|
"type": "start",
|
|
7964
8007
|
"position": from,
|
|
7965
|
-
"registerOverlay": registerOverlay
|
|
8008
|
+
"registerOverlay": registerOverlay,
|
|
8009
|
+
"language": language
|
|
7966
8010
|
}
|
|
7967
8011
|
}), Vue.h(StartEndPoint, {
|
|
7968
8012
|
"attrs": {
|
|
7969
8013
|
"type": "end",
|
|
7970
8014
|
"position": to,
|
|
7971
|
-
"registerOverlay": registerOverlay
|
|
8015
|
+
"registerOverlay": registerOverlay,
|
|
8016
|
+
"language": language
|
|
7972
8017
|
}
|
|
7973
8018
|
}), Vue.h(PlaceCircle, {
|
|
7974
8019
|
"attrs": {
|
|
@@ -7995,6 +8040,9 @@ const SectionCanceled = defineSetup(function SectionCanceled2(props) {
|
|
|
7995
8040
|
};
|
|
7996
8041
|
});
|
|
7997
8042
|
const SectionEndService = defineSetup(function SectionEndService2(props) {
|
|
8043
|
+
const {
|
|
8044
|
+
language
|
|
8045
|
+
} = useMapSupplier();
|
|
7998
8046
|
return () => {
|
|
7999
8047
|
const {
|
|
8000
8048
|
from: fromPlace,
|
|
@@ -8020,13 +8068,15 @@ const SectionEndService = defineSetup(function SectionEndService2(props) {
|
|
|
8020
8068
|
"attrs": {
|
|
8021
8069
|
"type": "start",
|
|
8022
8070
|
"position": from,
|
|
8023
|
-
"registerOverlay": registerOverlay
|
|
8071
|
+
"registerOverlay": registerOverlay,
|
|
8072
|
+
"language": language
|
|
8024
8073
|
}
|
|
8025
8074
|
}), Vue.h(StartEndPoint, {
|
|
8026
8075
|
"attrs": {
|
|
8027
8076
|
"type": "end",
|
|
8028
8077
|
"position": to,
|
|
8029
|
-
"registerOverlay": registerOverlay
|
|
8078
|
+
"registerOverlay": registerOverlay,
|
|
8079
|
+
"language": language
|
|
8030
8080
|
}
|
|
8031
8081
|
}), Vue.h(PlaceCircle, {
|
|
8032
8082
|
"attrs": {
|