import type { Poi, PoiDataset, PoiImageAsset } from '@/domain/poi' import { coverPhotoUrlFor, hasCoverPhoto } from './photos' const SNAPSHOT_CAPTURED_AT = '2026-07-30T01:00:33Z' const POC_REVIEWED_AT = '2026-07-30T01:30:00Z' const PHOTOS_REVIEWED_AT = '2026-07-31T00:00:00Z' const PLACEHOLDER_URL = '/static/poi/placeholder.png' const AMAP_DATA_SOURCE = '高德地图 Web Service POI 2.0 离线候选快照(2026-07-30),POC 内容映射待项目方复核' interface PocPoiSeed { id: string amapId: string name: string aliases?: string[] categoryCode: Poi['categoryCode'] tagCodes: Poi['tagCodes'] longitude: number latitude: number address: string summary: string description: string recommendationIndex: number } const poiSeeds: PocPoiSeed[] = [ { id: 'poi_gm_culture_center', amapId: 'B0J6J56UDU', name: '光明文化艺术中心', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'family_friendly'], longitude: 113.936961, latitude: 22.746647, address: '汇新路和观光路交汇处光明文化艺术中心', summary: '光明区综合公共文化空间,可用于探索展览、阅读与演艺类资源。', description: '该点位由高德 POI 候选映射,用于 POC 验证综合文化场馆的地图发现与详情展示。具体场馆服务、活动安排、预约及入馆规则仍需项目方内容负责人复核。', recommendationIndex: 5, }, { id: 'poi_amap_b0hbtu4bfr', amapId: 'B0HBTU4BFR', name: '光明区图书馆', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'family_friendly'], longitude: 113.937398, latitude: 22.747176, address: '光明街道光明社区牛山路与泉鸣路交汇处', summary: '面向公众的阅读与文化服务场馆 POC 候选点位。', description: '该点位用于验证图书馆类公共文化资源的地图展示。馆藏服务、开放安排、闭馆日及活动信息未在本地快照中确认为正式内容,出行前请查询官方公告。', recommendationIndex: 4, }, { id: 'poi_amap_b0ffk306gx', amapId: 'B0FFK306GX', name: '光明区文化馆', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue'], longitude: 113.903035, latitude: 22.774135, address: '振明路9号', summary: '承载群众文化服务的公共文化场馆 POC 候选点位。', description: '该点位由高德候选数据映射,用于验证文化馆资源在全域地图中的分布展示。课程、活动、预约和开放安排均需由项目方逐项审核。', recommendationIndex: 4, }, { id: 'poi_amap_b02f38meio', amapId: 'B02F38MEIO', name: '光明区少年儿童图书馆', aliases: ['光明区图书馆红花山分馆'], categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'family_friendly'], longitude: 113.903516, latitude: 22.773246, address: '公明街道振明路9号', summary: '面向少年儿童阅读与亲子文化体验的 POC 候选点位。', description: '该点位用于验证亲子向图书馆资源的分类与详情表达。服务对象、入馆要求、活动和实际开放时间需以项目方审核资料为准。', recommendationIndex: 4, }, { id: 'poi_amap_b0jun773j3', amapId: 'B0JUN773J3', name: '深圳国际美术馆', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'photo_spot'], longitude: 113.939203, latitude: 22.77141, address: '新湖街道科韵社区光辉大道16号', summary: '用于展示美术展览与文化体验场景的 POC 候选点位。', description: '该点位由高德 POI 候选映射。本数据仅用于产品与技术验证,展览内容、预约规则、开放状态和正式名称口径需由项目方确认。', recommendationIndex: 5, }, { id: 'poi_amap_b0jbbzx4oo', amapId: 'B0JBBZX4OO', name: '光明区城市规划展览馆', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'science_learning'], longitude: 113.936066, latitude: 22.746634, address: '光明街道光明社区观光路3488号光明文化艺术中心', summary: '了解光明区城市建设与规划信息的 POC 候选场馆。', description: '该点位用于验证展览馆类资源的地图和详情展示。展陈内容、团队接待、预约方式及开放安排均不由本快照保证。', recommendationIndex: 4, }, { id: 'poi_amap_b0k025w32e', amapId: 'B0K025W32E', name: '茅洲河图书馆', categoryCode: 'cultural_venue', tagCodes: ['culture_experience', 'indoor_venue', 'walking'], longitude: 113.900907, latitude: 22.793807, address: '长春北路280号', summary: '结合阅读与滨水片区探索的公共文化 POC 候选点位。', description: '该点位用于补充光明区北部公共文化资源的空间分布。馆内服务、开放安排和具体入口需由项目方内容负责人复核。', recommendationIndex: 3, }, { id: 'poi_hongqiao_park', amapId: 'B0G1DSEKCI', name: '虹桥公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'photo_spot', 'family_friendly'], longitude: 113.960734, latitude: 22.744544, address: '光侨路', summary: '以步行、景观浏览和摄影体验为主的代表性城市公园。', description: '该点位用于验证城市公园类 POI 的地图 marker、摘要卡与详情联动。入口、开放状态、现场管理和设施信息需由项目方进一步核验。', recommendationIndex: 5, }, { id: 'poi_honghuashan_park', amapId: 'B02F301A51', name: '红花山公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'family_friendly'], longitude: 113.901249, latitude: 22.780778, address: '振明路88号', summary: '适合日常漫步与亲子休闲的城市公园 POC 点位。', description: '该点位用于验证公明片区公园资源的空间展示。现场设施、入口、临时管制和实际开放安排待项目方审核。', recommendationIndex: 4, }, { id: 'poi_amap_b0j2jc4n0w', amapId: 'B0J2JC4N0W', name: '科学公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'family_friendly', 'science_learning'], longitude: 113.943854, latitude: 22.78171, address: '深圳市光明区科学城片区(详细入口待项目方核验)', summary: '连接城市休闲与科学主题体验的公园 POC 候选点位。', description: '该点位由高德候选数据映射,用于验证科学城片区公园资源展示。边界、入口、开放范围和设施信息需由项目方确认。', recommendationIndex: 5, }, { id: 'poi_amap_b0ffmdhve1', amapId: 'B0FFMDHVE1', name: '鹅颈水湿地公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'nature_view', 'walking', 'family_friendly'], longitude: 113.915593, latitude: 22.740022, address: '凤凰街道东长路与光明大道交叉口北240米', summary: '兼具湿地景观与城市漫步体验的 POC 候选点位。', description: '该点位用于验证湿地公园类资源的地图表达。生态保护要求、可进入区域、开放时间和现场设施请以后续审核资料为准。', recommendationIndex: 4, }, { id: 'poi_amap_b0fffwu1l5', amapId: 'B0FFFWU1L5', name: '明湖公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'nature_view', 'family_friendly'], longitude: 113.89238, latitude: 22.737323, address: '凤凰塘尾社区光明大道西端', summary: '以湖景、漫步和社区休闲为特色的公园 POC 候选点位。', description: '该点位用于补充光明区西南片区文旅资源分布。公园边界、入口、设施和开放安排需由项目方实地或权威资料核验。', recommendationIndex: 4, }, { id: 'poi_amap_b0ffhfbsje', amapId: 'B0FFHFBSJE', name: '光明新城公园', aliases: ['牛山公园'], categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'outdoor_leisure'], longitude: 113.943603, latitude: 22.747512, address: '光明街道公园路', summary: '服务新城片区日常漫步与户外休闲的 POC 候选点位。', description: '该点位用于验证公园别名和稳定 POI ID 的映射。正式名称、边界、入口与开放信息需由项目方确认。', recommendationIndex: 3, }, { id: 'poi_amap_b0ffjf1b20', amapId: 'B0FFJF1B20', name: '光明开明公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'outdoor_leisure'], longitude: 113.928895, latitude: 22.74996, address: '凤凰街道观光路与侨明路交叉口西南', summary: '位于凤凰片区的城市休闲公园 POC 候选点位。', description: '该点位由高德候选数据映射,用于补充分区探索密度。现场设施、准确入口和开放状态待项目方复核。', recommendationIndex: 3, }, { id: 'poi_amap_b0g0kzrt5s', amapId: 'B0G0KZRT5S', name: '左岸科技公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'science_learning'], longitude: 113.912744, latitude: 22.784424, address: '公明街道民生大道与公常路交叉口向北200米路东', summary: '融合城市休闲与科技园区氛围的 POC 候选点位。', description: '该点位用于验证北部片区公园和科技主题标签展示。公园范围、活动和实际游览条件需由项目方审核。', recommendationIndex: 3, }, { id: 'poi_amap_b02f30abgs', amapId: 'B02F30ABGS', name: '西田公园', categoryCode: 'urban_park', tagCodes: ['city_park', 'walking', 'family_friendly'], longitude: 113.902393, latitude: 22.802134, address: '西田村西田路', summary: '补充光明区北部资源分布的社区型公园 POC 候选点位。', description: '该点位用于展示北部片区空间覆盖,不代表全区公园完整清单。现场入口、设施与开放安排需由项目方核验。', recommendationIndex: 3, }, { id: 'poi_amap_b0jgbp18uf', amapId: 'B0JGBP18UF', name: '大雁山森林公园', categoryCode: 'urban_park', tagCodes: ['nature_view', 'outdoor_leisure', 'walking'], longitude: 113.918763, latitude: 22.71302, address: '长凤路与长锦巷交叉口南320米', summary: '面向森林景观与户外漫步场景的 POC 候选点位。', description: '该点位用于验证森林公园类资源在光明区南部的分布展示。步行条件、安全提示、入口和开放范围需由项目方确认。', recommendationIndex: 4, }, { id: 'poi_amap_b0grac6nzz', amapId: 'B0GRAC6NZZ', name: '楼村湿地公园', categoryCode: 'urban_park', tagCodes: ['nature_view', 'walking', 'outdoor_leisure', 'family_friendly'], longitude: 113.918375, latitude: 22.782888, address: '公常路与S31龙大高速交叉口东北150米', summary: '适合湿地景观观察与轻量漫步的 POC 候选点位。', description: '该点位由高德候选数据映射。生态保护、露营管理、可进入区域与实际开放安排需由项目方审核。', recommendationIndex: 4, }, { id: 'poi_amap_b02f309r88', amapId: 'B02F309R88', name: '大顶岭山林公园', categoryCode: 'urban_park', tagCodes: ['nature_view', 'outdoor_leisure', 'walking', 'photo_spot'], longitude: 113.967446, latitude: 22.757015, address: '光明农场内', summary: '以山林景观和户外休闲为特色的公园 POC 候选点位。', description: '该点位与大顶岭绿道按主资源分别展示,用于验证公园和绿道分类。具体边界、入口、安全条件和开放状态需由项目方复核。', recommendationIndex: 4, }, { id: 'poi_farm_grand_view', amapId: 'B02F38IYO1', name: '光明农场大观园', categoryCode: 'pastoral_leisure', tagCodes: ['pastoral_scenery', 'family_friendly', 'science_learning'], longitude: 113.96152, latitude: 22.760571, address: '光灿路500号', summary: '聚合田园观光、亲子与科普体验的 POC 代表性点位。', description: '该点位用于验证田园休闲类资源的标签组合和详情展示。门票、开放时间、预约方式及具体体验内容未经本地数据包确认为正式信息。', recommendationIndex: 5, }, { id: 'poi_happy_pastoral', amapId: 'B0FFKB2ERH', name: '华侨城光明欢乐田园', aliases: ['光明欢乐田园', '华侨城光明小镇·欢乐田园'], categoryCode: 'pastoral_leisure', tagCodes: ['pastoral_scenery', 'photo_spot', 'family_friendly'], longitude: 113.961762, latitude: 22.776398, address: '新湖街道楼村一号路', summary: '用于体验田园景观、摄影和亲子休闲的 POC 代表性点位。', description: '该点位用于验证田园休闲分类、别名与摘要卡联动。花期、活动、票务和开放状态需在出行前以项目方审核后的官方信息为准。', recommendationIndex: 5, }, { id: 'poi_amap_b0ffkkmzsc', amapId: 'B0FFKKMZSC', name: '双晖稻田农场', categoryCode: 'pastoral_leisure', tagCodes: ['pastoral_scenery', 'family_friendly', 'outdoor_leisure'], longitude: 113.959446, latitude: 22.814738, address: '新羌社区北岗菜场北', summary: '用于补充农业与田园体验分布的 POC 候选点位。', description: '该点位来自高德农场与采摘类候选结果。经营状态、可游览内容、季节性活动、收费及开放安排必须由项目方复核后才能作为正式信息发布。', recommendationIndex: 3, }, { id: 'poi_amap_b02f38nj9k', amapId: 'B02F38NJ9K', name: '弘源寺', categoryCode: 'heritage_landmark', tagCodes: ['culture_experience', 'walking'], longitude: 113.901443, latitude: 22.701631, address: '星湖路170号', summary: '用于呈现宗教文化与历史人文资源的 POC 候选点位。', description: '该点位由高德候选数据映射,用于验证人文地标分类。参访礼仪、开放状态、活动和现场管理要求需以项目方确认的权威信息为准。', recommendationIndex: 4, }, { id: 'poi_amap_b0ffgthbcf', amapId: 'B0FFGTHBCF', name: '陈仙姑祠', categoryCode: 'heritage_landmark', tagCodes: ['culture_experience', 'walking'], longitude: 113.896693, latitude: 22.785158, address: '公明街道上村仙庄路2号', summary: '用于展示地方人文与传统建筑资源的 POC 候选点位。', description: '该点位仅作为人文资源候选进入 POC。历史沿革、文保属性、参访范围、名称口径和开放安排需由项目方内容负责人审核。', recommendationIndex: 3, }, { id: 'poi_amap_b0fffttiov', amapId: 'B0FFFTTIOV', name: '黄氏大宗祠', categoryCode: 'heritage_landmark', tagCodes: ['culture_experience', 'walking'], longitude: 113.969402, latitude: 22.765442, address: '光明街道迳口社区迳口旧村', summary: '位于传统村落环境中的人文建筑 POC 候选点位。', description: '该点位用于验证传统建筑类资源的数字化展示。历史信息、产权与开放属性、参访规则和具体定位均需项目方核实。', recommendationIndex: 3, }, { id: 'poi_amap_b0kb4cxaby', amapId: 'B0KB4CXABY', name: '玉律醒狮文化馆', categoryCode: 'heritage_landmark', tagCodes: ['culture_experience', 'indoor_venue', 'family_friendly'], longitude: 113.893694, latitude: 22.717116, address: '环玉路58号', summary: '用于呈现醒狮主题文化体验的 POC 候选点位。', description: '该点位来自高德文化馆候选结果,用于验证非遗相关资源的地图表达。场馆性质、展示内容、预约与开放信息需项目方核验。', recommendationIndex: 3, }, { id: 'poi_dadingling_greenway', amapId: 'B0FFMH5UFM', name: '大顶岭绿道', categoryCode: 'outdoor_greenway', tagCodes: ['outdoor_leisure', 'nature_view', 'walking', 'photo_spot'], longitude: 113.961882, latitude: 22.733499, address: '大顶岭山林绿道公园', summary: '融合自然观光、漫步与摄影场景的代表性绿道点位。', description: '该点位用于验证户外绿道资源在光明区整体视野中的分布展示。入口、线路范围、步行距离、设施及临时管制信息需由项目方复核。', recommendationIndex: 5, }, { id: 'poi_amap_b0ldbsbeea', amapId: 'B0LDBSBEEA', name: '光明湖碧道', categoryCode: 'outdoor_greenway', tagCodes: ['outdoor_leisure', 'nature_view', 'walking', 'photo_spot'], longitude: 113.969273, latitude: 22.788741, address: '圳园路168号', summary: '以滨水景观和轻量步行为特色的碧道 POC 候选点位。', description: '该点位用于验证碧道类户外资源展示。线路起止、可通行范围、安全提示、入口和开放状态需由项目方审核。', recommendationIndex: 4, }, { id: 'poi_amap_b0kup558j4', amapId: 'B0KUP558J4', name: '茅洲河碧道', categoryCode: 'outdoor_greenway', tagCodes: ['outdoor_leisure', 'nature_view', 'walking'], longitude: 113.905381, latitude: 22.793596, address: '河堤路与丰硕路交叉口东南180米', summary: '用于探索茅洲河沿线滨水空间的碧道 POC 候选点位。', description: '该点位用于补充北部滨水资源分布。线路边界、入口、通行条件与开放安排需由项目方进一步核验。', recommendationIndex: 4, }, { id: 'poi_amap_b0jb2aurvw', amapId: 'B0JB2AURVW', name: '五指耙森林公园(光明片区)', categoryCode: 'outdoor_greenway', tagCodes: ['outdoor_leisure', 'nature_view', 'walking'], longitude: 113.882598, latitude: 22.720256, address: '玉律立交入口南100米附近', summary: '位于区域边缘、面向森林漫步场景的 POC 候选点位。', description: '该点位名称来自高德候选结果并标记为光明片区,用于验证区域边缘资源展示。行政归属、入口、边界、安全条件与开放状态必须由项目方重点复核。', recommendationIndex: 4, }, ] function createCoverImage(seed: PocPoiSeed): PoiImageAsset { const photoReady = hasCoverPhoto(seed.id) return { id: `img_${seed.id}_cover`, url: photoReady ? coverPhotoUrlFor(seed.id) : PLACEHOLDER_URL, source: photoReady ? '项目方提供实景照片(本地静态资源)' : 'map-gm-app POC 包内占位素材', sourceReference: photoReady ? `asset_src_static_poi_photos_${seed.id}_jpg` : 'asset_src_static_poi_placeholder', copyrightStatus: 'cleared', licenseEvidence: photoReady ? 'PROJECT_PROVIDED_COVER_PHOTO_2026Q3' : 'POC_INTERNAL_ASSET_001', reviewedBy: photoReady ? 'project_content_owner' : 'poc_content_owner', reviewedAt: photoReady ? PHOTOS_REVIEWED_AT : POC_REVIEWED_AT, updatedAt: photoReady ? PHOTOS_REVIEWED_AT : POC_REVIEWED_AT, isPlaceholder: !photoReady, alt: photoReady ? `${seed.name}实景照片` : `${seed.name} POC 占位图`, } } function createPoi(seed: PocPoiSeed): Poi { return { id: seed.id, name: seed.name, aliases: seed.aliases ?? [], categoryCode: seed.categoryCode, tagCodes: seed.tagCodes, longitude: seed.longitude, latitude: seed.latitude, coordinateSystem: 'GCJ02', coverImageId: `img_${seed.id}_cover`, imageIds: [], summary: seed.summary, description: seed.description, address: seed.address, openingHours: { status: 'unknown', displayText: null, note: '高德营业时间仅作采集候选,正式开放时间待项目方确认', sourceUpdatedAt: null, }, recommendationIndex: seed.recommendationIndex, recommendationSource: 'poc_default', recommendationConfiguredBy: 'poc_product_default_unreviewed', recommendationUpdatedAt: POC_REVIEWED_AT, streetCode: null, dataSource: AMAP_DATA_SOURCE, sourceReference: `amap:${seed.amapId}`, contentRightsStatus: 'cleared', contentRightsEvidence: 'POC_ORIGINAL_SUMMARY_DRAFT_20260730', reviewStatus: 'approved', publishStatus: 'published', reviewedBy: 'poc_content_owner', reviewedAt: POC_REVIEWED_AT, updatedAt: POC_REVIEWED_AT, } } /** * Curated development snapshot for the seven-day POC. AMap is only the * offline discovery source; the client never calls AMap Web Service at runtime. */ export const poiDataset: PoiDataset = { meta: { datasetVersion: 'gm-poc-amap-curated-20260730.1', generatedAt: POC_REVIEWED_AT, reviewedBy: ['poc_product_owner', 'poc_content_owner'], coverageScope: 'reviewed_sample', coverageLabel: `${poiSeeds.length} 个高德候选精选点(非全域权威清单)`, authoritativeBaselineProvided: false, canClaimFullCoverage: false, disclaimer: `本地数据来自 ${SNAPSHOT_CAPTURED_AT.slice(0, 10)} 高德候选快照并经 POC 筛选;简介、开放时间、推荐指数与图片仍需项目方逐点复核,不代表光明区全域权威清单。`, defaultViewport: { longitude: 113.9275, latitude: 22.76, scale: 11, }, }, categories: [ { code: 'cultural_venue', name: '文化场馆', markerIcon: '/static/markers/default.png', selectedMarkerIcon: '/static/markers/default-selected.png', sortOrder: 10, status: 'enabled', }, { code: 'urban_park', name: '公园湿地', markerIcon: '/static/markers/default.png', selectedMarkerIcon: '/static/markers/default-selected.png', sortOrder: 20, status: 'enabled', }, { code: 'pastoral_leisure', name: '田园休闲', markerIcon: '/static/markers/default.png', selectedMarkerIcon: '/static/markers/default-selected.png', sortOrder: 30, status: 'enabled', }, { code: 'heritage_landmark', name: '人文地标', markerIcon: '/static/markers/default.png', selectedMarkerIcon: '/static/markers/default-selected.png', sortOrder: 40, status: 'enabled', }, { code: 'outdoor_greenway', name: '绿道户外', markerIcon: '/static/markers/default.png', selectedMarkerIcon: '/static/markers/default-selected.png', sortOrder: 50, status: 'enabled', }, ], tags: [ { code: 'family_friendly', name: '亲子友好', sortOrder: 10, status: 'enabled', synonyms: ['适合亲子', '亲子'] }, { code: 'nature_view', name: '自然观光', sortOrder: 20, status: 'enabled', synonyms: ['自然风光'] }, { code: 'outdoor_leisure', name: '户外休闲', sortOrder: 30, status: 'enabled', synonyms: ['户外'] }, { code: 'culture_experience', name: '文化体验', sortOrder: 40, status: 'enabled', synonyms: ['文化活动'] }, { code: 'pastoral_scenery', name: '田园风光', sortOrder: 50, status: 'enabled', synonyms: ['田园'] }, { code: 'photo_spot', name: '摄影推荐', sortOrder: 60, status: 'enabled', synonyms: ['拍照'] }, { code: 'city_park', name: '城市公园', sortOrder: 70, status: 'enabled' }, { code: 'indoor_venue', name: '室内场馆', sortOrder: 80, status: 'enabled' }, { code: 'science_learning', name: '科普体验', sortOrder: 90, status: 'enabled', synonyms: ['科普'] }, { code: 'walking', name: '漫步休闲', sortOrder: 100, status: 'enabled', synonyms: ['徒步', '散步'] }, ], images: poiSeeds.map(createCoverImage), pois: poiSeeds.map(createPoi), }