reafactor(important): change to new map backround base goong.io
This commit is contained in:
+46
-9
@@ -1,9 +1,50 @@
|
||||
// Production BackEndGo API base URL.
|
||||
// For local development, override with NEXT_PUBLIC_API_BASE_URL (e.g. http://localhost:3344).
|
||||
const FALLBACK_API_BASE_URL = "https://history-api.kain.id.vn";
|
||||
import { API_URL_ROOT } from "../../../api";
|
||||
|
||||
export const API_BASE_URL =
|
||||
process.env.NEXT_PUBLIC_API_BASE_URL || FALLBACK_API_BASE_URL;
|
||||
const GOONG_TILES_BASE_URL = "https://tiles.goong.io";
|
||||
|
||||
export const API_BASE_URL = normalizeApiBaseUrl(API_URL_ROOT);
|
||||
const GOONG_PROXY_BASE_PATH = `${API_BASE_URL}/proxy`;
|
||||
|
||||
export const GOONG_SATELLITE_STYLE_UPSTREAM_URL = `${GOONG_TILES_BASE_URL}/assets/goong_satellite.json`;
|
||||
export const GOONG_VECTOR_OVERLAY_STYLE_UPSTREAM_URL = `${GOONG_TILES_BASE_URL}/assets/goong_map_web.json`;
|
||||
export const GOONG_GLYPHS_UPSTREAM_URL = `${GOONG_TILES_BASE_URL}/fonts/{fontstack}/{range}.pbf`;
|
||||
|
||||
export const USE_EXTERNAL_BACKGROUND_RASTER = API_BASE_URL.length > 0;
|
||||
|
||||
function normalizeApiBaseUrl(rawUrl: string): string {
|
||||
return rawUrl.trim().replace(/\/+$/, "");
|
||||
}
|
||||
|
||||
export function stripGoongApiKeyFromUrl(rawUrl: string): string {
|
||||
const [basePart, hashPart = ""] = rawUrl.split("#", 2);
|
||||
const [pathPart, queryString = ""] = basePart.split("?", 2);
|
||||
const sanitizedQuery = queryString
|
||||
.split("&")
|
||||
.filter((segment) => segment && !segment.toLowerCase().startsWith("api_key="))
|
||||
.join("&");
|
||||
|
||||
return `${pathPart}${sanitizedQuery ? `?${sanitizedQuery}` : ""}${hashPart ? `#${hashPart}` : ""}`;
|
||||
}
|
||||
|
||||
export function buildGoongProxyUrl(rawUrl: string): string {
|
||||
const sanitizedUrl = stripGoongApiKeyFromUrl(rawUrl);
|
||||
const templateTokens: string[] = [];
|
||||
const tokenizedUrl = sanitizedUrl.replace(/\{[^}]+\}/g, (match) => {
|
||||
const tokenId = `__UHM_GOONG_URL_TOKEN_${templateTokens.length}__`;
|
||||
templateTokens.push(match);
|
||||
return tokenId;
|
||||
});
|
||||
|
||||
let encodedUrl = encodeURIComponent(tokenizedUrl);
|
||||
templateTokens.forEach((token, index) => {
|
||||
const encodedTokenId = encodeURIComponent(`__UHM_GOONG_URL_TOKEN_${index}__`);
|
||||
encodedUrl = encodedUrl.replace(encodedTokenId, token);
|
||||
});
|
||||
|
||||
return `${GOONG_PROXY_BASE_PATH}/${encodedUrl}`;
|
||||
}
|
||||
|
||||
export const GOONG_GLYPHS_PROXY_URL = buildGoongProxyUrl(GOONG_GLYPHS_UPSTREAM_URL);
|
||||
|
||||
export const API_ENDPOINTS = {
|
||||
geometries: `${API_BASE_URL}/geometries`,
|
||||
@@ -18,8 +59,4 @@ export const API_ENDPOINTS = {
|
||||
currentUserProjects: `${API_BASE_URL}/users/current/project`,
|
||||
projects: `${API_BASE_URL}/projects`,
|
||||
submissions: `${API_BASE_URL}/submissions`,
|
||||
vectorTiles: `${API_BASE_URL}/tiles/{z}/{x}/{y}`,
|
||||
rasterTiles: `${API_BASE_URL}/raster-tiles/{z}/{x}/{y}`,
|
||||
vectorTilesMetadata: `${API_BASE_URL}/tiles/metadata`,
|
||||
rasterTilesMetadata: `${API_BASE_URL}/raster-tiles/metadata`,
|
||||
} as const;
|
||||
|
||||
Reference in New Issue
Block a user