简化来馆面板并优化地图点位展示

This commit is contained in:
lyf
2026-07-09 18:46:56 +08:00
parent 5b4fe19ce3
commit 3f9c64a36e
5 changed files with 587 additions and 221 deletions

View File

@@ -1,89 +1,123 @@
export type ArrivalTargetGroup = 'venue' | 'transit' | 'realtime'
export type ArrivalRealtimeKind = 'bus' | 'parking'
export type ArrivalTargetType = 'bus' | 'metro' | 'parking'
export interface ArrivalTargetTypeOption {
type: ArrivalTargetType
label: string
}
export interface ArrivalSearchTarget {
id: string
type: ArrivalTargetType
title: string
subtitle: string
description?: string
keyword: string
region: string
group: ArrivalTargetGroup
realtimeKind?: ArrivalRealtimeKind
latitude: number
longitude: number
}
export const ARRIVAL_SEARCH_REGION = '深圳市'
export const ARRIVAL_SEARCH_TARGETS: ArrivalSearchTarget[] = [
{
id: 'shenzhen-natural-history-museum',
title: '深圳自然博物馆',
keyword: '深圳自然博物馆',
region: ARRIVAL_SEARCH_REGION,
group: 'venue'
},
{
id: 'shabo-station-exit-d',
title: '沙壆站 D口',
keyword: '沙壆站D口',
region: ARRIVAL_SEARCH_REGION,
group: 'transit'
},
{
id: 'natural-museum-west-station',
title: '自然博物馆西站',
keyword: '自然博物馆西站',
region: ARRIVAL_SEARCH_REGION,
group: 'transit'
},
export const ARRIVAL_TARGET_TYPES: ArrivalTargetTypeOption[] = [
{ type: 'bus', label: '公交' },
{ type: 'metro', label: '地铁' },
{ type: 'parking', label: '停车场' }
]
export const ARRIVAL_TARGETS: ArrivalSearchTarget[] = [
{
id: 'museum-bus-stop',
title: '深圳自然博物馆 公交站',
type: 'bus',
title: '深圳自然博物馆公交站',
subtitle: '场馆周边公交接驳点',
description: '适合到馆前在第三方地图中继续查看实时公交和步行路径。',
keyword: '深圳自然博物馆 公交站',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'bus'
},
{
id: 'shabo-metro-bus-stop',
title: '沙壆地铁站 公交站',
keyword: '沙壆地铁站 公交站',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'bus'
latitude: 22.69258,
longitude: 114.36372
},
{
id: 'natural-museum-west-bus-stop',
title: '自然博物馆西 公交站',
type: 'bus',
title: '自然博物馆西公交站',
subtitle: '龙坪路周边公交接驳点',
description: '靠近坪山云巴自然博物馆西站,可作为公共交通换乘参考。',
keyword: '自然博物馆西 公交站',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'bus'
latitude: 22.69193,
longitude: 114.35821
},
{
id: 'shabo-metro-bus-stop',
type: 'bus',
title: '沙壆地铁站公交站',
subtitle: '地铁 16 号线周边公交接驳',
description: '适合先到沙壆站后换乘公交或步行前往场馆。',
keyword: '沙壆地铁站 公交站',
region: ARRIVAL_SEARCH_REGION,
latitude: 22.68676,
longitude: 114.36441
},
{
id: 'shabo-station-exit-d',
type: 'metro',
title: '沙壆站 D口',
subtitle: '地铁 16 号线出口',
description: '出站后请以第三方地图展示的步行路线为准。',
keyword: '沙壆站D口',
region: ARRIVAL_SEARCH_REGION,
latitude: 22.68676,
longitude: 114.36441
},
{
id: 'natural-museum-west-station',
type: 'metro',
title: '自然博物馆西站',
subtitle: '坪山云巴 1 号线',
description: '云巴站点位于龙坪路与三洋湖工业一路交叉口以北。',
keyword: '自然博物馆西站',
region: ARRIVAL_SEARCH_REGION,
latitude: 22.69193,
longitude: 114.35821
},
{
id: 'museum-parking',
title: '深圳自然博物馆 停车场',
type: 'parking',
title: '深圳自然博物馆停车场',
subtitle: '场馆停车点位',
description: '停车开放规则、入口和余位请以现场及第三方地图为准。',
keyword: '深圳自然博物馆 停车场',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'parking'
latitude: 22.69228,
longitude: 114.36318
},
{
id: 'pingshan-cultural-cluster-parking',
title: '坪山文化聚落 停车场',
type: 'parking',
title: '坪山文化聚落停车场',
subtitle: '周边文化设施停车参考',
description: '适合作为周边停车备选,具体开放情况请以第三方地图为准。',
keyword: '坪山文化聚落 停车场',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'parking'
latitude: 22.69618,
longitude: 114.34652
},
{
id: 'yanzi-lake-area-parking',
title: '燕子湖片区 停车场',
type: 'parking',
title: '燕子湖片区停车场',
subtitle: '片区停车参考',
description: '请在第三方地图中确认入口、距离与可停情况。',
keyword: '燕子湖片区 停车场',
region: ARRIVAL_SEARCH_REGION,
group: 'realtime',
realtimeKind: 'parking'
latitude: 22.69084,
longitude: 114.36522
}
]
export const ARRIVAL_VENUE_TARGETS = ARRIVAL_SEARCH_TARGETS.filter((target) => target.group === 'venue')
export const ARRIVAL_TRANSIT_TARGETS = ARRIVAL_SEARCH_TARGETS.filter((target) => target.group === 'transit')
export const ARRIVAL_REALTIME_TARGETS = ARRIVAL_SEARCH_TARGETS.filter((target) => target.group === 'realtime')
export const ARRIVAL_TARGETS_BY_TYPE: Record<ArrivalTargetType, ArrivalSearchTarget[]> = {
bus: ARRIVAL_TARGETS.filter((target) => target.type === 'bus'),
metro: ARRIVAL_TARGETS.filter((target) => target.type === 'metro'),
parking: ARRIVAL_TARGETS.filter((target) => target.type === 'parking')
}