From 114868b0ed52ab2c9cec9dbd8fd518b1c76a1496 Mon Sep 17 00:00:00 2001 From: Denis Ryabko Date: Thu, 13 Nov 2025 19:52:05 +0300 Subject: [PATCH 1/4] feat(Map): integrate Schema.org microdata for GeoCoordinates in GoogleMap and YandexMap components --- src/components/Map/GoogleMap.tsx | 34 ++++++++++++++-------- src/components/Map/YMap/YandexMap.tsx | 39 +++++++++++++++++++++++-- src/components/Map/models.ts | 41 +++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 14 deletions(-) create mode 100644 src/components/Map/models.ts diff --git a/src/components/Map/GoogleMap.tsx b/src/components/Map/GoogleMap.tsx index 6aa322431..5204dcaa3 100644 --- a/src/components/Map/GoogleMap.tsx +++ b/src/components/Map/GoogleMap.tsx @@ -10,6 +10,7 @@ import {GMapProps} from '../../models'; import {block} from '../../utils'; import {getMapHeight} from './helpers'; +import {GeoCoordinatesMicrodataValues} from './models'; const b = block('map'); @@ -67,18 +68,27 @@ const GoogleMap = (props: GMapProps) => { } return ( - ); }; From ac66cb198a170538ec228ee868f96709c753c693 Mon Sep 17 00:00:00 2001 From: Denis Ryabko Date: Sat, 15 Nov 2025 08:36:35 +0300 Subject: [PATCH 3/4] feat(Map): rework schema.org to JSON-LD format --- src/components/Map/GoogleMap.tsx | 26 +++++---- src/components/Map/YMap/YandexMap.tsx | 76 ++++++++++++++------------- src/components/Map/models.ts | 41 --------------- 3 files changed, 55 insertions(+), 88 deletions(-) delete mode 100644 src/components/Map/models.ts diff --git a/src/components/Map/GoogleMap.tsx b/src/components/Map/GoogleMap.tsx index e3aa66978..57065e490 100644 --- a/src/components/Map/GoogleMap.tsx +++ b/src/components/Map/GoogleMap.tsx @@ -10,7 +10,6 @@ import {GMapProps} from '../../models'; import {block} from '../../utils'; import {getMapHeight} from './helpers'; -import {GeoCoordinatesMicrodataValues} from './models'; const b = block('map'); @@ -63,6 +62,21 @@ const GoogleMap = (props: GMapProps) => { }; }, [forceAspectRatio, isMobile]); + // Generate Schema.org JSON-LD for Google Map + const mapMicrodataScript = React.useMemo(() => { + if (!address) { + return null; + } + + const json = JSON.stringify({ + '@context': 'https://schema.org', + '@type': 'Place', + address, + }); + + return