From f0f483a9d1686b72037c262603ee595baf5780dc Mon Sep 17 00:00:00 2001 From: aramesh-site deploy Date: Fri, 9 Oct 2026 17:41:07 +0000 Subject: [PATCH] =?UTF-8?q?feat(map):=20=D9=BE=DB=8C=D9=88=D9=86=D8=AF=20?= =?UTF-8?q?=D8=A2=D8=AF=D8=B1=D8=B3=20=D9=BE=D8=B1=D9=88=DA=98=D9=87=20?= =?UTF-8?q?=D8=A7=D8=B2=20=D9=86=D8=B4=D8=A7=D9=86=20=D8=A8=D9=87=20=DA=AF?= =?UTF-8?q?=D9=88=DA=AF=D9=84=E2=80=8C=D9=85=D9=BE=20=E2=80=94=20=D9=82?= =?UTF-8?q?=D8=A7=D9=84=D8=A8=20=D8=B1=D8=B3=D9=85=DB=8C=20Maps=20URLs=20?= =?UTF-8?q?=D8=A8=D8=A7=20=D9=85=D8=AE=D8=AA=D8=B5=D8=A7=D8=AA=20(=3Fapi?= =?UTF-8?q?=3D1&query=3Dlat,lng)=D8=8C=20=D8=A8=DB=8C=E2=80=8C=D9=86=DB=8C?= =?UTF-8?q?=D8=A7=D8=B2=20=D8=A7=D8=B2=20=DA=A9=D9=84=DB=8C=D8=AF=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/data/mapProjects.ts | 17 ++++++++--------- frontend/src/map/ProjectsMapAll.tsx | 4 ++-- frontend/src/map/ProjectsMapSingle.tsx | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/frontend/src/data/mapProjects.ts b/frontend/src/data/mapProjects.ts index 6b1058d..26db414 100644 --- a/frontend/src/data/mapProjects.ts +++ b/frontend/src/data/mapProjects.ts @@ -145,14 +145,13 @@ export function parseProjectsCsv(raw: string): MapProject[] { export const MAP_PROJECTS: MapProject[] = parseProjectsCsv(RAW_CSV) -/** پیوند نشان روی نقشه برای سرویس نشان */ -export function buildNeshanUrl(project: Pick, zoom = 17): string { - return `https://neshan.org/maps/@${project.lat},${project.lng},${zoom}z` -} - -/** پیوند نقشه گوگل */ +/** + * پیوند نقشهٔ گوگل روی مختصات پروژه — قالب رسمی Maps URLs با پارامتر query، + * بی‌نیاز از کلید API. یک سنجاق دقیق روی همان نقطه می‌نشاند و روی موبایل + * اپلیکیشن گوگل‌مپ را باز می‌کند. + */ export function buildGoogleMapsUrl(project: Pick): string { - return `https://www.google.com/maps?q=${project.lat},${project.lng}` + return `https://www.google.com/maps/search/?api=1&query=${project.lat},${project.lng}` } const NAME_NOISE = ['آرامش', 'پروژه', 'مجتمع', 'گروه', 'ساختمانی', 'برج', 'مجموعه'] @@ -232,7 +231,7 @@ export function csvProjectToCard(project: MapProject, detailHref: string): Proje title: project.name, status: project.isNew ? 'progress' : 'done', detailHref, - addressUrl: buildNeshanUrl(project), + addressUrl: buildGoogleMapsUrl(project), } } @@ -247,6 +246,6 @@ export function apiProjectToCard(project: Project, detailHref: string): ProjectC location: project.location || undefined, image: project.image || undefined, area: project.area || undefined, - addressUrl: matched ? buildNeshanUrl(matched) : undefined, + addressUrl: matched ? buildGoogleMapsUrl(matched) : undefined, } } diff --git a/frontend/src/map/ProjectsMapAll.tsx b/frontend/src/map/ProjectsMapAll.tsx index 0b705dc..ecd5833 100644 --- a/frontend/src/map/ProjectsMapAll.tsx +++ b/frontend/src/map/ProjectsMapAll.tsx @@ -6,7 +6,7 @@ import { ISFAHAN_CENTER, MAP_PROJECTS, boundsForProjects, - buildNeshanUrl, + buildGoogleMapsUrl, type MapProject, } from '../data/mapProjects' import { useLang } from '../i18n/lang' @@ -80,7 +80,7 @@ export function ProjectsMapAll({ {/* منطق دکمهٔ آدرس دست‌نخورده — فقط در ستون عمودی نشسته است */} {/* منطق دکمهٔ آدرس دست‌نخورده است — تنها اکشن این کارت */}