|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
46
docs/Benchmark/generated-guide-designs-0519/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 0519 规范版导览功能设计稿
|
||||
|
||||
## 说明
|
||||
|
||||
本目录为新版“导览 / 馆内导览”功能逻辑设计稿的 0519 视觉规范重生成版本。生成依据包括:
|
||||
|
||||
- 对标逻辑分析:`docs/Benchmark/guide-video-ux-logic-analysis.md`
|
||||
- UI 规范目录:`E:\MyWork\深圳国际艺术馆\museum-guide\docs\UI设计\深圳自然博物馆小程序+设计规范0519`
|
||||
- 规范图片:`色彩.png`、`布局.png`、`按钮.png`、`文字.png`、`圆角.png`、`图标.png`、`示例.png`
|
||||
|
||||
这些图片只表达功能逻辑、UX 状态和页面结构,不是最终视觉规范或可直接切图的交付稿。正式落地仍需产品、设计和路线数据 readiness 共同确认。
|
||||
|
||||
## 0519 规范应用要点
|
||||
|
||||
- 色彩:系统主色 / 按钮文字 `#E0DF00`,主按钮 `#000000`,选中文字高亮 `#BEBD02`,链接 `#1B6EC0`,标签 `#2C854F`,错误 `#E73333`,背景 `#F9FAFB`。
|
||||
- 文本:主标题 `#000000`,正文 `#3F3F3F`,占位 / 默认提示 `#ADB0B4`,分割线 `#D9D9D9`。
|
||||
- 布局:页面边距约 15-16px,基础间距 10px,保持 6 列网格感。
|
||||
- 圆角:标签 / 选项 4px,按钮 / 输入框 / 搜索框 8px,卡片 / 弹框 16px。
|
||||
- 字体:中文以微软雅黑、思源黑体、苹方风格为准;层级参考 20pt、18pt、16pt、14pt、12pt。
|
||||
- 图标:线性小程序图标风格,未选中灰色,选中使用系统主色。
|
||||
|
||||
## 图片清单
|
||||
|
||||
| 文件 | 业务状态 | 功能闭环 | 对应落地参考 |
|
||||
| --- | --- | --- | --- |
|
||||
| `01-guide-home-0519.png` | 导览首页初始态 | 地图作为导览工作台,搜索、楼层、快捷入口同屏可达 | `src/pages/index/index.vue`、`GuideMapShell.vue` |
|
||||
| `02-search-poi-0519.png` | 搜索地点 / 筛选态 | 搜索结果可查看位置、设起点、去这里,不脱离地图上下文 | `src/pages/search/index.vue`、未来地图内 overlay |
|
||||
| `03-poi-selected-0519.png` | POI 选中态 | POI 卡片承接查看位置、从这里出发、去这里、相关讲解 | `index.vue` 的 `selectedGuidePoi` 相关逻辑 |
|
||||
| `04-route-planning-0519.png` | 路线规划态 | 起终点完整性、偏好选项、路线 readiness 和降级文案 | `RoutePlannerPanel.vue`、`guideRouteUseCase.ts` |
|
||||
| `05-indoor-navigation-active-0519.png` | 馆内导览进行中 | 当前路线、下一步、当前楼层、进度、暂停 / 退出 / 重新定位 | 未来导航运行态;当前需受路线 readiness 约束 |
|
||||
| `06-cross-floor-navigation-0519.png` | 跨楼层导览态 | 当前层路线、换层节点、下一层路线关系 | 未来 `route_graph`、`nav_data`、楼层连接器 |
|
||||
| `07-arrival-complete-0519.png` | 到达目标 / 结束导览 | 到达确认、查看详情、相关讲解、重新规划、返回首页 | 未来导航完成态和讲解联动 |
|
||||
| `08-error-fallback-0519.png` | 异常 / 降级态 | SDK / 定位 / 路线不可用时返回位置预览或手动选择 | `guideReadiness.ts`、`route/detail.vue` 降级逻辑 |
|
||||
|
||||
## 需要确认的问题
|
||||
|
||||
1. 0519 规范中的底部导航栏目是“首页 / 展览 / 券码 / 商城 / 我的”,本导览业务是否需要保留项目当前“导览 / 讲解”顶部入口,还是纳入底部主导航。
|
||||
2. `#E0DF00` 作为导览路线高亮是否足够清晰,还是路线应优先使用标签绿 `#2C854F`,主色仅用于按钮和选中态。
|
||||
3. 路线未就绪阶段,主按钮是否统一为“查看位置关系”,避免出现“开始导览”误导。
|
||||
4. “模拟导览”是否面向用户开放,还是只作为内部演示 / 测试状态。
|
||||
5. 跨楼层偏好是否需要在第一期只保留“电梯优先”,待 route graph 验证后再开放楼梯 / 扶梯。
|
||||
6. 到达页是否优先承接“相关讲解”,以形成导览到讲解的跨业务闭环。
|
||||
|
||||
## 生成方式
|
||||
|
||||
按 `C:\Users\Administrator\.codex\skills\.system\imagegen\SKILL.md` 使用内置 `image_gen` 工具逐张生成,再复制到当前目录。原始生成图保留在 Codex 默认生成目录中,未删除。
|
||||
|
After Width: | Height: | Size: 448 KiB |
@@ -0,0 +1,183 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844">
|
||||
<defs>
|
||||
<linearGradient id="pageBg" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#FBFCFD"/><stop offset="1" stop-color="#F4F6F7"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="mapSky" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#FFFFFF"/><stop offset="0.36" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E7EEF1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#FFFFFF"/><stop offset="0.62" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DDE7EC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wallRight" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#CED9E0"/><stop offset="1" stop-color="#AEBCC5"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wallLeft" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#E2EAEE"/><stop offset="1" stop-color="#C3D0D8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#DFF2FA" stop-opacity=".72"/><stop offset="1" stop-color="#A8D2E7" stop-opacity=".58"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#E5F2E8"/><stop offset="1" stop-color="#CFE7D8"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="70%" r="50%">
|
||||
<stop offset="0" stop-color="#2C854F" stop-opacity=".36"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<filter id="cardShadow" x="-30%" y="-30%" width="160%" height="170%">
|
||||
<feDropShadow dx="0" dy="10" stdDeviation="11" flood-color="#0B1820" flood-opacity=".13"/>
|
||||
</filter>
|
||||
<filter id="softShadow" x="-30%" y="-30%" width="160%" height="170%">
|
||||
<feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/>
|
||||
</filter>
|
||||
<filter id="tinyShadow" x="-40%" y="-40%" width="180%" height="190%">
|
||||
<feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".13"/>
|
||||
</filter>
|
||||
<filter id="mapDepth" x="-20%" y="-20%" width="150%" height="150%">
|
||||
<feDropShadow dx="9" dy="14" stdDeviation="8" flood-color="#6D7E88" flood-opacity=".22"/>
|
||||
</filter>
|
||||
<clipPath id="mapClip"><rect x="14" y="91" width="362" height="662" rx="19"/></clipPath>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#FFFFFF;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glassPanel{fill:#FFFFFF;fill-opacity:.82;stroke:#D9D9D9;stroke-width:1}.label{fill:#FFFFFF;stroke:#D9D9D9;stroke-width:1}.line{stroke:#D9D9D9;stroke-width:1}.facility{fill:#FFFFFF;fill-opacity:.92;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.4}.leftWall{fill:url(#wallLeft);stroke:#B8C7D0;stroke-width:.7}.rightWall{fill:url(#wallRight);stroke:#9EAFB9;stroke-width:.7}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<rect width="390" height="844" fill="url(#pageBg)"/>
|
||||
<rect x="0" y="0" width="390" height="844" fill="#F9FAFB" opacity=".68"/>
|
||||
|
||||
<text x="18" y="62" class="font black heavy" font-size="36" letter-spacing="0">导览</text>
|
||||
<g class="font bold" font-size="17">
|
||||
<text x="306" y="55" class="green">来馆</text>
|
||||
<path d="M358 42 L366 50 L358 58" fill="none" stroke="#2C854F" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g clip-path="url(#mapClip)">
|
||||
<rect x="14" y="91" width="362" height="662" rx="19" fill="url(#mapSky)"/>
|
||||
<path d="M-20 204 C90 174 160 130 265 124 C356 119 425 150 446 213 L446 91 L-20 91 Z" fill="#FFFFFF" opacity=".58"/>
|
||||
<circle cx="305" cy="178" r="105" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="82" cy="642" r="118" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-16 260 L405 168" stroke="#BFD8E4" stroke-width="15" opacity=".45"/>
|
||||
<path d="M-5 724 L408 628" stroke="#BFD8E4" stroke-width="15" opacity=".38"/>
|
||||
<path d="M-10 266 L405 174" stroke="#F8FCFD" stroke-width="7" opacity=".8"/>
|
||||
<path d="M0 730 L408 635" stroke="#F8FCFD" stroke-width="7" opacity=".74"/>
|
||||
|
||||
<g transform="translate(-3 104) rotate(-18 198 310)" filter="url(#mapDepth)">
|
||||
<g opacity=".98">
|
||||
<polygon points="126,68 302,68 302,151 126,151" class="rightWall" transform="translate(10 16)"/>
|
||||
<polygon points="126,68 302,68 302,151 126,151" class="roof"/>
|
||||
<polygon points="151,83 277,83 277,133 151,133" fill="url(#garden)" stroke="#C9E3D1"/>
|
||||
<g opacity=".48" stroke="#9EC0A9" stroke-width="1"><path d="M170 125 c10 -18 16 -24 31 -33"/><path d="M206 126 c13 -20 26 -30 48 -36"/><path d="M226 132 c15 -13 25 -20 40 -22"/></g>
|
||||
|
||||
<polygon points="50,164 244,164 244,279 50,279" class="leftWall" transform="translate(10 16)"/>
|
||||
<polygon points="50,164 244,164 244,279 50,279" class="roof"/>
|
||||
<polygon points="72,187 221,187 221,255 72,255" fill="#F9FBFC" stroke="#E1E8EC"/>
|
||||
|
||||
<polygon points="266,172 431,172 431,278 266,278" class="rightWall" transform="translate(10 16)"/>
|
||||
<polygon points="266,172 431,172 431,278 266,278" class="roof"/>
|
||||
<polygon points="292,190 407,190 407,255 292,255" fill="url(#garden)" stroke="#C9E3D1"/>
|
||||
|
||||
<path d="M181 245 Q227 182 274 245 L274 430 L181 430 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.4"/>
|
||||
<path d="M199 265 Q226 227 254 266 L254 406 L199 406 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<path d="M204 272 Q226 242 248 272" fill="none" stroke="#B9CBD5" stroke-width="3" opacity=".45"/>
|
||||
|
||||
<polygon points="132,309 285,309 285,438 132,438" class="leftWall" transform="translate(10 16)"/>
|
||||
<polygon points="132,309 285,309 285,438 132,438" class="roof"/>
|
||||
<polygon points="157,333 262,333 262,413 157,413" fill="#FFFFFF" stroke="#E2E9ED"/>
|
||||
|
||||
<polygon points="296,336 466,336 466,452 296,452" class="rightWall" transform="translate(10 16)"/>
|
||||
<polygon points="296,336 466,336 466,452 296,452" class="roof"/>
|
||||
<polygon points="320,358 438,358 438,430 320,430" fill="url(#garden)" stroke="#C9E3D1"/>
|
||||
|
||||
<polygon points="42,437 238,437 238,540 42,540" class="leftWall" transform="translate(10 16)"/>
|
||||
<polygon points="42,437 238,437 238,540 42,540" class="roof"/>
|
||||
<polygon points="65,460 215,460 215,515 65,515" fill="#FFFFFF" stroke="#E2E9ED"/>
|
||||
|
||||
<polygon points="178,448 230,448 230,664 178,664" fill="#FFFFFF" stroke="#D4DEE4" stroke-width="1.3"/>
|
||||
<polygon points="240,443 282,443 282,664 240,664" fill="#FFFFFF" stroke="#D4DEE4" stroke-width="1.3"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".7"><path d="M190 476 h26 M190 510 h26 M190 544 h26 M190 578 h26 M252 474 h18 M252 508 h18 M252 542 h18 M252 576 h18"/></g>
|
||||
<rect x="310" y="80" width="78" height="24" rx="2" fill="url(#glass)" transform="rotate(0)"/>
|
||||
<rect x="86" y="574" width="112" height="20" rx="2" fill="url(#glass)" opacity=".6"/>
|
||||
</g>
|
||||
<g opacity=".55">
|
||||
<circle cx="178" cy="105" r="4" fill="#8AB999"/><circle cx="198" cy="98" r="5" fill="#8AB999"/><circle cx="218" cy="114" r="4" fill="#8AB999"/><circle cx="352" cy="220" r="5" fill="#8AB999"/><circle cx="378" cy="238" r="4" fill="#8AB999"/><circle cx="355" cy="397" r="5" fill="#8AB999"/><circle cx="383" cy="404" r="4" fill="#8AB999"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g opacity=".26" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
|
||||
<path d="M292 279 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/>
|
||||
<path d="M300 286 l-18 10 l20 3 l-10 15 M314 287 l8 16 l18 8 M330 284 l16 -8 M337 281 l15 2"/>
|
||||
</g>
|
||||
</g>
|
||||
<rect x="14" y="91" width="362" height="662" rx="19" fill="none" stroke="#D9D9D9"/>
|
||||
|
||||
<g filter="url(#softShadow)">
|
||||
<rect x="24" y="104" width="342" height="43" rx="12" class="glassPanel"/>
|
||||
<circle cx="45" cy="125" r="8.5" fill="none" stroke="#565A5E" stroke-width="2.2"/>
|
||||
<path d="M51.5 132 L59 139" stroke="#565A5E" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<text x="74" y="131" class="font muted" font-size="14">搜索展厅、设施或地点</text>
|
||||
<path d="M338 117 a7 7 0 0 1 14 0 v8 a7 7 0 0 1 -14 0z M345 135 v8 M339 143 h12" fill="none" stroke="#3F3F3F" stroke-width="2" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="24" y="158" width="122" height="34" rx="11" class="glassPanel"/>
|
||||
<rect x="27" y="161" width="58" height="28" rx="8" fill="#000"/>
|
||||
<text x="44" y="180" class="font lime bold" font-size="14">地图</text>
|
||||
<text x="105" y="180" class="font text" font-size="14">列表</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="25" y="209" width="75" height="34" rx="10" class="facility"/>
|
||||
<g stroke="#3F3F3F" stroke-width="1.8" fill="none"><rect x="38" y="219" width="7" height="7" rx="1"/><rect x="51" y="219" width="7" height="7" rx="1"/><rect x="38" y="231" width="7" height="7" rx="1"/><rect x="51" y="231" width="7" height="7" rx="1"/></g>
|
||||
<text x="66" y="231" class="font text bold" font-size="13">图例</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<g transform="translate(25 254)"><rect width="38" height="38" rx="12" class="facility"/><text x="19" y="25" text-anchor="middle" class="font green heavy" font-size="18">i</text><text x="19" y="55" text-anchor="middle" class="font black bold mini">服务台</text></g>
|
||||
<g transform="translate(104 254)"><rect width="38" height="38" rx="12" class="facility"/><path d="M17 25 V14 M17 14 l-5 5 M17 14 l5 5 M23 13 v14" stroke="#2C854F" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><text x="19" y="55" text-anchor="middle" class="font black bold mini">电梯</text></g>
|
||||
<g transform="translate(183 254)"><rect width="38" height="38" rx="12" class="facility"/><path d="M11 25 c5 -2 7 -7 11 -12 c2 -3 5 -3 7 0 M13 29 c6 -2 9 -8 14 -14" stroke="#2C854F" stroke-width="2" fill="none" stroke-linecap="round"/><text x="19" y="55" text-anchor="middle" class="font black bold mini">扶梯</text></g>
|
||||
<g transform="translate(262 254)"><rect width="38" height="38" rx="12" class="facility"/><text x="19" y="24" text-anchor="middle" class="font green heavy" font-size="12">WC</text><text x="19" y="55" text-anchor="middle" class="font black bold mini">洗手间</text></g>
|
||||
<g transform="translate(329 254)"><rect width="38" height="38" rx="12" class="facility"/><path d="M13 26 H25 M22 17 l7 7 l-7 7" stroke="#2C854F" stroke-width="2.3" fill="none" stroke-linecap="round" stroke-linejoin="round"/><text x="19" y="55" text-anchor="middle" class="font black bold mini">出入口</text></g>
|
||||
</g>
|
||||
|
||||
<g filter="url(#softShadow)">
|
||||
<rect x="75" y="323" width="107" height="47" rx="10" class="label"/>
|
||||
<path d="M128 370 l-10 10 h20 z" fill="#fff" stroke="#D9D9D9" stroke-width="1"/>
|
||||
<text x="128.5" y="343" text-anchor="middle" class="font black" font-size="13">地球演化厅</text><text x="128.5" y="360" text-anchor="middle" class="font black" font-size="12">1F-03</text>
|
||||
|
||||
<rect x="217" y="346" width="120" height="52" rx="10" class="label"/>
|
||||
<text x="277" y="367" text-anchor="middle" class="font black bold" font-size="15">恐龙化石展厅</text><text x="277" y="386" text-anchor="middle" class="font black" font-size="14">1F-02</text>
|
||||
<ellipse cx="276" cy="348" rx="35" ry="16" fill="url(#pinGlow)"/>
|
||||
<path d="M276 294 C257 294 245 308 245 325 C245 349 276 371 276 371 C276 371 307 349 307 325 C307 308 295 294 276 294 Z" fill="#2C854F"/>
|
||||
<circle cx="276" cy="323" r="10.5" fill="#FFFFFF"/>
|
||||
|
||||
<rect x="235" y="491" width="121" height="48" rx="10" class="label"/><path d="M296 491 l-10 -10 h20 z" fill="#fff" stroke="#D9D9D9" stroke-width="1"/><text x="295.5" y="512" text-anchor="middle" class="font black" font-size="13">生命起源区</text><text x="295.5" y="529" text-anchor="middle" class="font black" font-size="12">1F-05</text>
|
||||
<rect x="48" y="575" width="126" height="48" rx="10" class="label"/><path d="M111 575 l-10 -10 h20 z" fill="#fff" stroke="#D9D9D9" stroke-width="1"/><text x="111" y="596" text-anchor="middle" class="font black" font-size="13">矿物与岩石厅</text><text x="111" y="613" text-anchor="middle" class="font black" font-size="12">1F-04</text>
|
||||
<rect x="254" y="647" width="88" height="48" rx="10" class="label"/><path d="M298 647 l-9 -9 h18 z" fill="#fff" stroke="#D9D9D9" stroke-width="1"/><text x="298" y="668" text-anchor="middle" class="font black" font-size="13">1号展厅</text><text x="298" y="685" text-anchor="middle" class="font black" font-size="12">1F-01</text>
|
||||
</g>
|
||||
|
||||
<g class="font" filter="url(#tinyShadow)">
|
||||
<text x="174" y="663" text-anchor="middle" class="green bold" font-size="20">↑</text><text x="174" y="684" text-anchor="middle" class="black" font-size="13">主入口</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#softShadow)">
|
||||
<rect x="323" y="315" width="43" height="168" rx="13" class="glassPanel"/>
|
||||
<text x="344.5" y="342" text-anchor="middle" class="font text" font-size="17">3F</text><line x1="329" y1="357" x2="360" y2="357" class="line"/>
|
||||
<text x="344.5" y="384" text-anchor="middle" class="font text" font-size="17">2F</text><line x1="329" y1="399" x2="360" y2="399" class="line"/>
|
||||
<rect x="323" y="399" width="43" height="42" rx="8" fill="#000"/><text x="344.5" y="427" text-anchor="middle" class="font lime heavy" font-size="18">1F</text>
|
||||
<line x1="329" y1="441" x2="360" y2="441" class="line"/><text x="344.5" y="467" text-anchor="middle" class="font text" font-size="17">B1</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="328" y="613" width="38" height="38" rx="12" class="facility"/><path d="M347 622 v20 M337 632 h20" stroke="#ADB0B4" stroke-width="1.2"/><circle cx="347" cy="632" r="4" fill="none" stroke="#3F3F3F" stroke-width="1.7"/>
|
||||
<rect x="328" y="660" width="38" height="38" rx="12" class="facility"/><text x="347" y="686" text-anchor="middle" class="font text" font-size="22">+</text>
|
||||
<rect x="328" y="707" width="38" height="38" rx="12" class="facility"/><text x="347" y="733" text-anchor="middle" class="font text" font-size="22">-</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="29" y="688" width="181" height="28" rx="14" class="glassPanel"/>
|
||||
<circle cx="43" cy="702" r="4" fill="#2C854F"/><text x="55" y="707" class="font text" font-size="12">当前展示 1F 馆内三维地图</text>
|
||||
</g>
|
||||
|
||||
<rect x="18" y="767" width="354" height="54" rx="10" fill="#000000" filter="url(#cardShadow)"/>
|
||||
<text x="195" y="802" text-anchor="middle" class="font lime heavy" font-size="22">开始导览</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,36 @@
|
||||
# H5 导览首页高保真设计稿
|
||||
|
||||
本目录为新版 H5 导览首页高保真设计稿,仅用于产品和设计评审,不是最终视觉规范文件。
|
||||
|
||||
## 文件
|
||||
|
||||
- `01-h5-home-high-fidelity.png`:高保真首页 PNG,按 390x844 画布的 2x 精度输出。
|
||||
- `01-h5-home-high-fidelity.svg`:可编辑源稿,便于继续调整布局和样式。
|
||||
|
||||
## 设计重点
|
||||
|
||||
- 纯 H5 首页:不包含手机状态栏、微信小程序胶囊、小程序标题栏或浏览器外壳。
|
||||
- 首屏重点突出馆内三维地图,地图占据页面主体。
|
||||
- 其他组件使用浮层和缩放形式:搜索、地图/列表切换、图例、设施入口、楼层切换、定位/缩放。
|
||||
- 只保留核心功能入口:`来馆`、地点搜索、设施筛选、楼层切换、`开始导览`。
|
||||
- 不加入收藏、推荐、我的、讲解推荐等扩展功能。
|
||||
|
||||
## 视觉依据
|
||||
|
||||
- 参考用户提供的首页图的信息架构和页面优先级。
|
||||
- 参考 `深圳自然博物馆小程序+设计规范0519` 的主色、按钮、边距、圆角和文字关系。
|
||||
- 三维地图采用高保真示意表达,强调建筑层次、点位标注、楼层控制和导览主按钮。
|
||||
|
||||
## 本项目落地对应
|
||||
|
||||
- 首页页面:`src/pages/index/index.vue`
|
||||
- 导览地图外壳:`src/components/navigation/GuideMapShell.vue`
|
||||
- 地图渲染:`src/components/map/SgsMapRenderer.vue`
|
||||
- 后续路线规划:`src/components/navigation/RoutePlannerPanel.vue`
|
||||
|
||||
## 需要确认
|
||||
|
||||
- `开始导览` 点击后进入路线规划,还是直接进入当前位置导览态。
|
||||
- 地图/列表切换是否保留在 H5 首页首屏。
|
||||
- 设施入口是否仅保留服务台、电梯、扶梯、洗手间、出入口。
|
||||
- 楼层数据是否固定展示,或由 SDK/后台动态返回。
|
||||
|
After Width: | Height: | Size: 104 KiB |
@@ -0,0 +1,109 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844">
|
||||
<defs>
|
||||
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="8" stdDeviation="8" flood-color="#000000" flood-opacity="0.10"/></filter>
|
||||
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="4" stdDeviation="5" flood-color="#000000" flood-opacity="0.09"/></filter>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#ffffff"/><stop offset="0.54" stop-color="#EEF3F5"/><stop offset="1" stop-color="#F9FAFB"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
||||
<linearGradient id="side" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CBD5DC"/><stop offset="1" stop-color="#AEBBC4"/></linearGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC',Arial,sans-serif}.black{fill:#000}.body{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.line{stroke:#D9D9D9}.panel{fill:#fff;fill-opacity:.88;stroke:#D9D9D9;stroke-width:1}.poi{fill:#fff;stroke:#D9D9D9;stroke-width:1;filter:url(#soft)}.wall{fill:url(#wall);stroke:#D7E0E5;stroke-width:1.6}.side{fill:url(#side);opacity:.65}.garden{fill:#DCEDE2;stroke:#CBE2D3;stroke-width:1}.water{fill:#DDEDF6;stroke:#CFE2EE;stroke-width:1}.bold{font-weight:700}.heavy{font-weight:800}
|
||||
</style>
|
||||
</defs>
|
||||
<rect width="390" height="844" fill="#F9FAFB"/>
|
||||
|
||||
<text x="18" y="58" class="font black heavy" font-size="34">导览</text>
|
||||
<text x="306" y="54" class="font green bold" font-size="17">来馆</text>
|
||||
<path d="M358 41 l8 8 l-8 8" fill="none" stroke="#2C854F" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
|
||||
<rect x="14" y="92" width="362" height="660" rx="18" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<ellipse cx="292" cy="186" rx="86" ry="72" fill="#2C854F" opacity=".07"/>
|
||||
<ellipse cx="100" cy="612" rx="90" ry="86" fill="#1B6EC0" opacity=".06"/>
|
||||
|
||||
<g transform="translate(-16 112) rotate(-18 200 290)">
|
||||
<rect x="42" y="418" width="320" height="14" class="water"/>
|
||||
<rect x="53" y="86" width="312" height="12" class="water"/>
|
||||
<rect x="142" y="48" width="128" height="54" class="garden"/>
|
||||
<rect x="246" y="140" width="120" height="78" class="garden"/>
|
||||
<rect x="265" y="300" width="122" height="74" class="garden"/>
|
||||
<g opacity=".96">
|
||||
<rect x="122" y="44" width="184" height="82" class="side" transform="translate(9 12)"/>
|
||||
<rect x="122" y="44" width="184" height="82" class="wall"/>
|
||||
<rect x="48" y="150" width="200" height="112" class="side" transform="translate(9 12)"/>
|
||||
<rect x="48" y="150" width="200" height="112" class="wall"/>
|
||||
<rect x="264" y="158" width="166" height="102" class="side" transform="translate(9 12)"/>
|
||||
<rect x="264" y="158" width="166" height="102" class="wall"/>
|
||||
<rect x="126" y="290" width="154" height="126" class="side" transform="translate(9 12)"/>
|
||||
<rect x="126" y="290" width="154" height="126" class="wall"/>
|
||||
<rect x="294" y="318" width="172" height="112" class="side" transform="translate(9 12)"/>
|
||||
<rect x="294" y="318" width="172" height="112" class="wall"/>
|
||||
<rect x="40" y="418" width="196" height="104" class="side" transform="translate(9 12)"/>
|
||||
<rect x="40" y="418" width="196" height="104" class="wall"/>
|
||||
<path d="M178 226 Q222 165 268 226 L268 412 L178 412 Z" fill="#F7FAFB" stroke="#D4DDE3" stroke-width="1.6"/>
|
||||
<rect x="170" y="426" width="54" height="210" fill="#FFFFFF" stroke="#D9E0E5" stroke-width="1.4"/>
|
||||
<rect x="234" y="424" width="40" height="210" fill="#FFFFFF" stroke="#D9E0E5" stroke-width="1.4"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="24" y="103" width="342" height="42" rx="12" class="panel"/>
|
||||
<circle cx="44" cy="124" r="8" fill="none" stroke="#565A5E" stroke-width="2"/>
|
||||
<line x1="51" y1="131" x2="58" y2="138" stroke="#565A5E" stroke-width="2" stroke-linecap="round"/>
|
||||
<text x="72" y="130" class="font muted" font-size="14">搜索展厅、设施或地点</text>
|
||||
<path d="M338 116 a7 7 0 0 1 14 0 v8 a7 7 0 0 1 -14 0z M345 134 v8 M339 142 h12" fill="none" stroke="#3F3F3F" stroke-width="2" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="24" y="154" width="119" height="34" rx="10" fill="#fff" fill-opacity=".82" stroke="#D9D9D9"/>
|
||||
<rect x="27" y="157" width="56" height="28" rx="8" fill="#000"/>
|
||||
<text x="43" y="176" class="font lime bold" font-size="14">地图</text>
|
||||
<text x="103" y="176" class="font body" font-size="14">列表</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="24" y="204" width="72" height="34" rx="10" class="panel"/>
|
||||
<rect x="37" y="214" width="7" height="7" fill="none" stroke="#3F3F3F" stroke-width="1.8"/><rect x="49" y="214" width="7" height="7" fill="none" stroke="#3F3F3F" stroke-width="1.8"/><rect x="37" y="226" width="7" height="7" fill="none" stroke="#3F3F3F" stroke-width="1.8"/><rect x="49" y="226" width="7" height="7" fill="none" stroke="#3F3F3F" stroke-width="1.8"/>
|
||||
<text x="65" y="226" class="font body bold" font-size="13">图例</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<g transform="translate(25 250)"><rect width="37" height="37" rx="12" class="panel"/><text x="18.5" y="24" text-anchor="middle" class="font green bold" font-size="18">i</text><text x="18.5" y="55" text-anchor="middle" class="font black bold" font-size="10">服务台</text></g>
|
||||
<g transform="translate(104 250)"><rect width="37" height="37" rx="12" class="panel"/><text x="18.5" y="24" text-anchor="middle" class="font green bold" font-size="17">⇧</text><text x="18.5" y="55" text-anchor="middle" class="font black bold" font-size="10">电梯</text></g>
|
||||
<g transform="translate(183 250)"><rect width="37" height="37" rx="12" class="panel"/><text x="18.5" y="24" text-anchor="middle" class="font green bold" font-size="17">≈</text><text x="18.5" y="55" text-anchor="middle" class="font black bold" font-size="10">扶梯</text></g>
|
||||
<g transform="translate(262 250)"><rect width="37" height="37" rx="12" class="panel"/><text x="18.5" y="23" text-anchor="middle" class="font green bold" font-size="12">WC</text><text x="18.5" y="55" text-anchor="middle" class="font black bold" font-size="10">洗手间</text></g>
|
||||
<g transform="translate(329 250)"><rect width="37" height="37" rx="12" class="panel"/><text x="18.5" y="24" text-anchor="middle" class="font green bold" font-size="18">↗</text><text x="18.5" y="55" text-anchor="middle" class="font black bold" font-size="10">出入口</text></g>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="206" y="337" width="120" height="52" rx="10" class="poi"/>
|
||||
<text x="266" y="358" text-anchor="middle" class="font black bold" font-size="15">恐龙化石展厅</text>
|
||||
<text x="266" y="377" text-anchor="middle" class="font black" font-size="14">1F-02</text>
|
||||
<path d="M268 285 C250 285 239 298 239 314 C239 337 268 357 268 357 C268 357 297 337 297 314 C297 298 286 285 268 285 Z" fill="#2C854F"/>
|
||||
<circle cx="268" cy="312" r="10" fill="#fff"/>
|
||||
</g>
|
||||
<g class="font" filter="url(#soft)">
|
||||
<rect x="73" y="311" width="108" height="48" rx="10" class="poi"/><text x="127" y="331" text-anchor="middle" font-size="13">地球演化厅</text><text x="127" y="348" text-anchor="middle" font-size="12">1F-03</text>
|
||||
<rect x="238" y="482" width="118" height="48" rx="10" class="poi"/><text x="297" y="502" text-anchor="middle" font-size="13">生命起源区</text><text x="297" y="519" text-anchor="middle" font-size="12">1F-05</text>
|
||||
<rect x="46" y="561" width="126" height="48" rx="10" class="poi"/><text x="109" y="581" text-anchor="middle" font-size="13">矿物与岩石厅</text><text x="109" y="598" text-anchor="middle" font-size="12">1F-04</text>
|
||||
<rect x="253" y="638" width="88" height="48" rx="10" class="poi"/><text x="297" y="658" text-anchor="middle" font-size="13">1号展厅</text><text x="297" y="675" text-anchor="middle" font-size="12">1F-01</text>
|
||||
<text x="174" y="657" text-anchor="middle" class="green bold" font-size="18">↑</text><text x="174" y="678" text-anchor="middle" class="black" font-size="13">主入口</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="323" y="304" width="43" height="168" rx="13" class="panel"/>
|
||||
<text x="344.5" y="330" text-anchor="middle" class="font body" font-size="16">3F</text><line x1="328" y1="346" x2="361" y2="346" class="line"/>
|
||||
<text x="344.5" y="372" text-anchor="middle" class="font body" font-size="16">2F</text><line x1="328" y1="388" x2="361" y2="388" class="line"/>
|
||||
<rect x="323" y="388" width="43" height="42" rx="8" fill="#000"/><text x="344.5" y="416" text-anchor="middle" class="font lime heavy" font-size="18">1F</text>
|
||||
<line x1="328" y1="430" x2="361" y2="430" class="line"/><text x="344.5" y="456" text-anchor="middle" class="font body" font-size="16">B1</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#soft)">
|
||||
<rect x="328" y="606" width="38" height="38" rx="12" class="panel"/><text x="347" y="631" text-anchor="middle" class="font body" font-size="18">⌖</text>
|
||||
<rect x="328" y="653" width="38" height="38" rx="12" class="panel"/><text x="347" y="678" text-anchor="middle" class="font body" font-size="20">+</text>
|
||||
<rect x="328" y="700" width="38" height="38" rx="12" class="panel"/><text x="347" y="725" text-anchor="middle" class="font body" font-size="20">-</text>
|
||||
</g>
|
||||
|
||||
<rect x="28" y="676" width="176" height="28" rx="14" class="panel" filter="url(#soft)"/>
|
||||
<text x="116" y="695" text-anchor="middle" class="font body" font-size="12">当前展示 1F 馆内三维地图</text>
|
||||
<rect x="18" y="766" width="354" height="54" rx="10" fill="#000" filter="url(#shadow)"/>
|
||||
<text x="195" y="801" text-anchor="middle" class="font lime heavy" font-size="22">开始导览</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.8 KiB |
@@ -0,0 +1,35 @@
|
||||
# H5 导览首页精简设计稿
|
||||
|
||||
本目录为新版 H5 导览首页的精简设计稿,仅表达功能逻辑和页面结构,不作为最终视觉规范。
|
||||
|
||||
## 文件
|
||||
|
||||
- `01-h5-home-3d-map-focus.png`:H5 首页设计稿,重点突出馆内三维地图。
|
||||
- `01-h5-home-3d-map-focus.svg`:用于复查和二次调整的可编辑源稿。
|
||||
|
||||
## 设计逻辑
|
||||
|
||||
- 平台定位为纯 H5 页面:无手机状态栏、无微信小程序胶囊、无小程序标题栏。
|
||||
- 首页核心目标是进入馆内导览,因此三维地图占据首屏主体区域。
|
||||
- 搜索、地图/列表切换、图例、设施入口、楼层切换、定位和缩放控件均以地图浮层形式出现,减少对地图主区域的挤占。
|
||||
- 底部只保留主要操作「开始导览」,不加入收藏、推荐、我的等扩展功能。
|
||||
- 右上角保留「来馆」入口,对应馆外/到馆路线入口。
|
||||
|
||||
## 参考依据
|
||||
|
||||
- 用户提供的首页参考图:保留其信息架构,包括标题、来馆、地图/列表、搜索、设施入口、楼层和开始导览。
|
||||
- `深圳自然博物馆小程序+设计规范0519`:参考背景色、主按钮色、按钮文字色、标签绿色、分割线和基础边距。
|
||||
|
||||
## 本项目落地对应
|
||||
|
||||
- 首页入口:`src/pages/index/index.vue`
|
||||
- 导览地图容器:`src/components/navigation/GuideMapShell.vue`
|
||||
- 地图渲染区域:`src/components/map/SgsMapRenderer.vue`
|
||||
- 后续路线规划面板:`src/components/navigation/RoutePlannerPanel.vue`
|
||||
|
||||
## 需要确认
|
||||
|
||||
- H5 首页是否默认展示地图模式,列表是否作为次级 tab 保留。
|
||||
- 「开始导览」点击后是进入路线规划、当前位置预览,还是直接进入模拟导览。
|
||||
- 设施入口是否只保留服务台、电梯、扶梯、洗手间、出入口这 5 类。
|
||||
- 楼层列表是否固定为 `3F / 2F / 1F / B1`,或需要从 SDK/后台动态读取。
|
||||
|
After Width: | Height: | Size: 148 KiB |
@@ -0,0 +1,176 @@
|
||||
<svg width="390" height="844" viewBox="0 0 390 844" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<filter id="softShadow" x="-30%" y="-30%" width="160%" height="160%">
|
||||
<feDropShadow dx="0" dy="8" stdDeviation="14" flood-color="#111111" flood-opacity="0.10"/>
|
||||
</filter>
|
||||
<filter id="tinyShadow" x="-40%" y="-40%" width="180%" height="180%">
|
||||
<feDropShadow dx="0" dy="4" stdDeviation="7" flood-color="#111111" flood-opacity="0.12"/>
|
||||
</filter>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="390" y2="844" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFFFFF"/>
|
||||
<stop offset="1" stop-color="#F3F5F4"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="mapBase" x1="38" y1="138" x2="356" y2="680" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F8FAFA"/>
|
||||
<stop offset="1" stop-color="#E8F0EC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="greenZone" x1="80" y1="260" x2="330" y2="532" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#EDF7EF"/>
|
||||
<stop offset="1" stop-color="#CFE7D6"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="water" x1="21" y1="550" x2="370" y2="733" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#DCECF0"/>
|
||||
<stop offset="1" stop-color="#BFD9E0"/>
|
||||
</linearGradient>
|
||||
<clipPath id="mapClip">
|
||||
<rect x="24" y="132" width="342" height="570" rx="22"/>
|
||||
</clipPath>
|
||||
<style>
|
||||
.title { font: 700 30px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; fill: #000; letter-spacing: 0; }
|
||||
.body { font: 400 13px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; fill: #252525; letter-spacing: 0; }
|
||||
.small { font: 400 11px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; fill: #4F4F4F; letter-spacing: 0; }
|
||||
.label { font: 500 12px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; fill: #000; letter-spacing: 0; }
|
||||
.floor { font: 500 15px "Microsoft YaHei", "PingFang SC", Arial, sans-serif; fill: #2C2C2C; letter-spacing: 0; }
|
||||
.accent { fill: #2C854F; }
|
||||
.lime { fill: #E0DF00; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<rect width="390" height="844" fill="url(#bg)"/>
|
||||
|
||||
<text x="24" y="56" class="title">导览</text>
|
||||
<g transform="translate(310 31)">
|
||||
<text x="0" y="17" font-family="Microsoft YaHei, PingFang SC, Arial, sans-serif" font-size="16" font-weight="600" fill="#2C854F">来馆</text>
|
||||
<path d="M48 3L56 11L48 19" stroke="#2C854F" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="24" y="78" width="342" height="48" rx="16" fill="#FFFFFF" stroke="#E1E3E2"/>
|
||||
<path d="M51 100.5C51 93.6 56.6 88 63.5 88C70.4 88 76 93.6 76 100.5C76 107.4 70.4 113 63.5 113C56.6 113 51 107.4 51 100.5Z" stroke="#333" stroke-width="2.2"/>
|
||||
<path d="M73 110L82 119" stroke="#333" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<text x="97" y="108" font-family="Microsoft YaHei, PingFang SC, Arial, sans-serif" font-size="14" fill="#8A8D8B">搜索展厅、设施、出入口</text>
|
||||
<rect x="306" y="89" width="42" height="26" rx="13" fill="#F5F6F5"/>
|
||||
<path d="M324 95V105C324 109 330 109 330 105V95C330 91 324 91 324 95Z" stroke="#2C854F" stroke-width="1.8"/>
|
||||
<path d="M320 103C320 110 334 110 334 103" stroke="#2C854F" stroke-width="1.8" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g clip-path="url(#mapClip)">
|
||||
<rect x="24" y="132" width="342" height="570" rx="22" fill="url(#mapBase)"/>
|
||||
<path d="M-12 578C58 545 88 613 150 593C225 569 246 604 315 570C368 544 409 579 425 596V737H-12V578Z" fill="url(#water)" opacity="0.62"/>
|
||||
<path d="M68 280L168 217L318 260L324 420L209 512L78 456L68 280Z" fill="url(#greenZone)" opacity="0.94"/>
|
||||
|
||||
<g opacity="0.95">
|
||||
<path d="M26 410L118 356L185 381L251 343L365 382" stroke="#B9C4C8" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M44 260L114 221L171 245L229 210L336 251" stroke="#C7D0D3" stroke-width="17" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M102 666L102 513L167 477L233 510L233 665" stroke="#C9D2D5" stroke-width="21" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M241 232L243 493" stroke="#CBD5D8" stroke-width="17" stroke-linecap="round"/>
|
||||
<path d="M35 568L126 515L201 539L310 473L379 501" stroke="#B7C3C7" stroke-width="18" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M132 181L132 342L88 369" stroke="#D5DCE0" stroke-width="15" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M291 165L291 329L336 350" stroke="#D5DCE0" stroke-width="15" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
|
||||
<g opacity="0.9">
|
||||
<path d="M46 408L120 367L183 389L247 354L361 392" stroke="#FFFFFF" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M48 263L116 230L171 252L229 220L333 258" stroke="#FFFFFF" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M102 656L102 518L167 488L232 516L232 659" stroke="#FFFFFF" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M35 568L126 525L200 548L309 486L376 511" stroke="#FFFFFF" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M243 238L243 484" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
|
||||
</g>
|
||||
|
||||
<g opacity="0.75">
|
||||
<rect x="81" y="173" width="77" height="61" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="168" y="190" width="61" height="55" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="255" y="173" width="70" height="69" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="67" y="477" width="72" height="58" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="248" y="494" width="77" height="58" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="144" y="562" width="64" height="74" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
<rect x="216" y="573" width="62" height="70" rx="8" fill="#FFFFFF" stroke="#D9E0E1"/>
|
||||
</g>
|
||||
|
||||
<g opacity="0.72">
|
||||
<circle cx="121" cy="281" r="7" fill="#81B48D"/>
|
||||
<circle cx="141" cy="269" r="8" fill="#7AAB85"/>
|
||||
<circle cx="302" cy="287" r="8" fill="#81B48D"/>
|
||||
<circle cx="321" cy="326" r="7" fill="#91C29A"/>
|
||||
<circle cx="63" cy="518" r="8" fill="#7AAB85"/>
|
||||
<circle cx="342" cy="549" r="7" fill="#82B58C"/>
|
||||
<circle cx="88" cy="642" r="7" fill="#8FC096"/>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="42" y="150" width="72" height="34" rx="12" fill="#FFFFFF"/>
|
||||
<path d="M58 160H66V168H58V160ZM72 160H80V168H72V160ZM58 174H66V182H58V174ZM72 174H80V182H72V174Z" fill="#111"/>
|
||||
<text x="89" y="172" class="label">图例</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="290" y="180" width="46" height="158" rx="17" fill="#FFFFFF"/>
|
||||
<text x="306" y="213" class="floor">3F</text>
|
||||
<line x1="300" y1="231" x2="326" y2="231" stroke="#E2E2E2"/>
|
||||
<text x="306" y="265" class="floor">2F</text>
|
||||
<rect x="298" y="282" width="30" height="34" rx="10" fill="#000000"/>
|
||||
<text x="306" y="305" font-family="Microsoft YaHei, PingFang SC, Arial, sans-serif" font-size="17" font-weight="700" fill="#E0DF00">1F</text>
|
||||
<text x="306" y="348" class="floor">B1</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="38" y="204" width="56" height="28" rx="14" fill="#FFFFFF"/>
|
||||
<circle cx="54" cy="218" r="4" fill="#2C854F"/>
|
||||
<path d="M62 222C69 216 73 216 81 221" stroke="#2C854F" stroke-width="2" stroke-linecap="round"/>
|
||||
<text x="99" y="224" class="small">设施</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="190" y="301" width="110" height="44" rx="14" fill="#FFFFFF"/>
|
||||
<text x="205" y="324" class="label">恐龙化石展厅</text>
|
||||
<text x="224" y="340" class="small">1F-02</text>
|
||||
</g>
|
||||
<g filter="url(#softShadow)">
|
||||
<path d="M246 291C246 274.4 259.4 261 276 261C292.6 261 306 274.4 306 291C306 315 276 347 276 347C276 347 246 315 246 291Z" fill="#2C854F"/>
|
||||
<circle cx="276" cy="291" r="12" fill="#FFFFFF"/>
|
||||
</g>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="54" y="403" width="94" height="43" rx="13" fill="#FFFFFF"/>
|
||||
<text x="72" y="426" class="label">矿物与岩石厅</text>
|
||||
<text x="91" y="442" class="small">1F-04</text>
|
||||
</g>
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="240" y="421" width="99" height="43" rx="13" fill="#FFFFFF"/>
|
||||
<text x="258" y="444" class="label">生命起源展区</text>
|
||||
<text x="277" y="460" class="small">1F-05</text>
|
||||
</g>
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="173" y="454" width="54" height="40" rx="12" fill="#FFFFFF"/>
|
||||
<text x="187" y="477" class="label">序厅</text>
|
||||
<text x="191" y="492" class="small">1F</text>
|
||||
</g>
|
||||
|
||||
<g>
|
||||
<path d="M187 556L196 546L205 556" stroke="#2C854F" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M196 547V570" stroke="#2C854F" stroke-width="2.2" stroke-linecap="round"/>
|
||||
<text x="174" y="593" class="body">主入口</text>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<rect x="24" y="132" width="342" height="570" rx="22" stroke="#DCDDDD"/>
|
||||
|
||||
<g filter="url(#tinyShadow)">
|
||||
<rect x="24" y="716" width="342" height="48" rx="16" fill="#FFFFFF"/>
|
||||
<rect x="34" y="724" width="97" height="32" rx="16" fill="#F1F3F2"/>
|
||||
<path d="M54 740H69" stroke="#2C854F" stroke-width="2" stroke-linecap="round"/>
|
||||
<path d="M61 733V748" stroke="#2C854F" stroke-width="2" stroke-linecap="round"/>
|
||||
<text x="78" y="745" class="label">1F</text>
|
||||
<rect x="141" y="724" width="90" height="32" rx="16" fill="#F1F3F2"/>
|
||||
<circle cx="160" cy="740" r="5" fill="#2C854F"/>
|
||||
<text x="174" y="745" class="label">定位</text>
|
||||
<rect x="241" y="724" width="115" height="32" rx="16" fill="#F1F3F2"/>
|
||||
<path d="M263 746L271 734L279 746" stroke="#2C854F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<text x="291" y="745" class="label">路线</text>
|
||||
</g>
|
||||
|
||||
<g filter="url(#softShadow)">
|
||||
<rect x="24" y="780" width="342" height="48" rx="16" fill="#000000"/>
|
||||
<text x="143" y="811" font-family="Microsoft YaHei, PingFang SC, Arial, sans-serif" font-size="18" font-weight="700" fill="#E0DF00">开始导览</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
@@ -0,0 +1,30 @@
|
||||
# H5 精简版导览首页设计稿
|
||||
|
||||
本目录为新版导览 H5 首页的单页设计稿,仅表达功能逻辑和页面结构,不是最终视觉规范,也不是小程序版界面。
|
||||
|
||||
## 文件
|
||||
|
||||
- `01-h5-guide-home-simple.png`:H5 导览首页精简版
|
||||
- `01-h5-guide-home-simple.svg`:可复查的矢量源稿
|
||||
|
||||
## 设计逻辑
|
||||
|
||||
- 平台形态:纯 H5 移动端页面,不包含手机状态栏、微信胶囊、小程序标题栏或浏览器外壳。
|
||||
- 首页重点:三维地图作为首屏核心,占据页面最大面积。
|
||||
- 搜索入口:保留一个顶部轻量搜索框,支持查找展厅、设施、出入口。
|
||||
- 功能缩放:设施、图例、楼层、定位、路线等操作以小型悬浮控件呈现,避免挤占地图。
|
||||
- 主任务闭环:用户进入导览首页后,可搜索地点、切换楼层、查看地图点位,并通过底部主按钮进入“开始导览”。
|
||||
- 精简范围:不包含收藏、推荐、我的、讲解推荐等扩展功能。
|
||||
|
||||
## 依据
|
||||
|
||||
- 用户提供的参考图用于信息架构参考:导览标题、来馆入口、搜索、设施入口、三维地图、楼层切换、底部开始导览。
|
||||
- 设计方向按用户要求调整为“终点突出三维地图,其他组件尽量使用缩放形式”。
|
||||
- 视觉仍参考项目 0519 规范的基础色彩关系:白/浅灰背景、黑色主按钮、荧黄选中/按钮文字、绿色辅助状态。
|
||||
|
||||
## 待确认
|
||||
|
||||
- “开始导览”是否直接进入导航中,还是先进入起终点/路线规划面板。
|
||||
- H5 首页是否需要保留“地图/列表”切换,当前精简稿已去掉切换以突出 3D 地图。
|
||||
- 设施快捷入口是否默认展开,还是点击“设施”后再展示分类。
|
||||
- 楼层是否固定在地图右侧,或在小屏下收进底部工具条。
|
||||
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 932 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
45
docs/Benchmark/generated-guide-designs-h5-simple/README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# H5 精简版导览设计稿
|
||||
|
||||
## 说明
|
||||
|
||||
本目录为 H5 版本的精简导览设计稿。相比前两版,本版刻意减少功能入口,不包含收藏、推荐、我的等扩展功能,重点保留导览最小闭环:
|
||||
|
||||
1. 打开导览首页。
|
||||
2. 搜索或按设施 / 楼层找点位。
|
||||
3. 选中点位。
|
||||
4. 选择起点 / 终点并查看位置关系。
|
||||
5. 进入简化导览中状态。
|
||||
6. 路线或定位不可用时回到位置预览。
|
||||
|
||||
点位搜索页参考了用户提供的界面结构:顶部标题、地图 / 搜索入口、设施分类图标、服务设施标签、馆名、楼层侧栏和点位列表。视觉仍按 0519 规范重绘,没有照抄参考图。
|
||||
|
||||
## 设计约束
|
||||
|
||||
- H5 移动端竖屏,页面尽量简单。
|
||||
- 不做收藏、推荐、我的、商城、票务等非导览功能。
|
||||
- 保留 0519 规范:`#F9FAFB` 背景、`#000000` 主按钮、`#E0DF00` 主按钮文字 / 选中态、`#2C854F` 标签 / 路线辅助、`#D9D9D9` 分割线。
|
||||
- 圆角遵循 0519:标签 4px,按钮 / 搜索框 8px,卡片 / 弹层 16px。
|
||||
- 路线未验证时不承诺正式导航,使用“位置预览 / 查看位置关系 / 模拟导览 / 暂不支持正式导航”等安全文案。
|
||||
|
||||
## 图片清单
|
||||
|
||||
| 文件 | 状态 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `01-h5-guide-home-simple.png` | H5 导览首页 | 搜索、地图预览、楼层、开始导览,不含推荐 / 收藏 |
|
||||
| `02-h5-search-poi-simple.png` | 导览点位搜索 | 参考截图的信息架构:设施分类、服务设施、楼层列表、点位列表 |
|
||||
| `03-h5-poi-selected-simple.png` | 点位选中 | 仅保留查看位置、从这里出发、去这里 |
|
||||
| `04-h5-route-planning-simple.png` | 路线规划 | 起点 / 终点、同层距离、查看位置关系、重新选择 |
|
||||
| `05-h5-navigation-active-simple.png` | 导览中 | 下一步提示、路线、进度、重新定位、退出导览 |
|
||||
| `06-h5-error-fallback-simple.png` | 异常降级 | 路线数据 / 定位不可用时返回位置预览或手动选择起点 |
|
||||
|
||||
## 需要确认
|
||||
|
||||
1. H5 首页是否只保留“开始导览”,还是保留“地图 / 列表”切换。
|
||||
2. 点位搜索页的设施分类是否固定为服务台、电梯、扶梯、洗手间、母婴室、出入口。
|
||||
3. “服务设施”是否只保留饮料售卖机、票务售卖机、纪念品售卖机。
|
||||
4. 路线未就绪时,主按钮是否统一使用“查看位置关系”。
|
||||
5. H5 是否需要保留“讲解”入口,还是先从本版导览闭环中移除。
|
||||
|
||||
## 生成方式
|
||||
|
||||
按 `C:\Users\Administrator\.codex\skills\.system\imagegen\SKILL.md` 使用内置 `image_gen` 工具生成。用户提供的截图作为结构参考图,不作为编辑目标;生成结果已复制到本项目目录,原始生成文件保留在 Codex 默认生成目录。
|
||||
BIN
docs/Benchmark/generated-guide-designs/01-guide-home.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
docs/Benchmark/generated-guide-designs/02-search-poi.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
docs/Benchmark/generated-guide-designs/03-poi-selected.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
docs/Benchmark/generated-guide-designs/04-route-planning.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
BIN
docs/Benchmark/generated-guide-designs/07-arrival-complete.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
docs/Benchmark/generated-guide-designs/08-error-fallback.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
50
docs/Benchmark/generated-guide-designs/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 新版导览功能设计稿图片说明
|
||||
|
||||
## 说明
|
||||
|
||||
本目录图片基于 `docs/Benchmark/guide-video-ux-logic-analysis.md` 提炼出的对标导览应用功能逻辑生成,用于表达本项目新版“导览 / 馆内导览”的业务闭环、UX 状态和页面结构。
|
||||
|
||||
这些图片不是最终视觉规范,不用于直接切图落地;图片中的颜色、图标、细节文案和布局只作为功能逻辑设计参考。正式实现仍需以本项目设计规范、组件能力、路线数据 readiness 和产品评审结论为准。
|
||||
|
||||
生成方式:按 `C:\Users\Administrator\.codex\skills\.system\imagegen\SKILL.md` 使用内置 `image_gen` 工具逐张生成,并复制到本项目目录。
|
||||
|
||||
## 图片清单
|
||||
|
||||
| 文件 | 业务状态 | 依据的对标视频逻辑 | 本项目落地参考 |
|
||||
| --- | --- | --- | --- |
|
||||
| `01-guide-home.png` | 导览首页初始态 | 地图作为导览工作台,搜索、楼层、更多和快捷入口同屏可达 | `src/pages/index/index.vue`、`GuideMapShell.vue`、`ThreeMap.vue` |
|
||||
| `02-search-poi.png` | 搜索地点 / 筛选态 | 搜索不脱离地图上下文,结果可继续查看位置、设起点或设终点 | `src/pages/search/index.vue`、未来可内聚到 `GuideMapShell` overlay |
|
||||
| `03-poi-selected.png` | POI 选中态 | 地图点位选中后成为任务枢纽,提供查看位置、从这里出发、去这里、相关讲解 | `index.vue` 的 `selectedGuidePoi` 卡片和 `handleSetSelectedPoiAsStart/End` |
|
||||
| `04-route-planning.png` | 路线规划态 | 起点 / 终点完整性校验,路线偏好和规划状态分层展示 | `RoutePlannerPanel.vue`、`RoutePointPicker.vue`、`guideRouteUseCase.ts` |
|
||||
| `05-indoor-navigation-active.png` | 馆内导览进行中 | 从“看路线”进入“执行指令”,持续展示下一步、距离、当前楼层和退出能力 | 未来导航运行态;当前仅可作为模拟导览 / 产品目标 |
|
||||
| `06-cross-floor-navigation.png` | 跨楼层导览态 | 跨层路线必须解释当前层路线、换层节点和下一层延续关系 | 未来 `route_graph`、`nav_data`、楼层连接器和路线渲染 |
|
||||
| `07-arrival-complete.png` | 到达目标 / 结束导览 | 导览闭环结束后提供查看详情、相关讲解、重新规划、返回首页 | 未来导航完成态;可复用位置详情、讲解联动和路线清理逻辑 |
|
||||
| `08-error-fallback.png` | 异常 / 降级态 | SDK、定位、路线不可用时给出明确原因和恢复路径,不让用户卡死 | `src/domain/guideReadiness.ts`、`route/detail.vue` 的降级提示、SDK 错误态 |
|
||||
|
||||
## 对标逻辑到本项目的转译原则
|
||||
|
||||
- 不照抄对标小程序 UI,只吸收任务闭环:找点、选点、规划、导览中、跨层、到达、退出。
|
||||
- 地图保持为导览主工作台,搜索、POI、路线面板尽量不打断空间上下文。
|
||||
- 当前路线数据未就绪时,只表达“位置预览 / 查看位置关系 / 能力不可用原因”,不承诺正式馆内导航。
|
||||
- “推荐路线 / 少走楼梯 / 电梯优先”需要真实拓扑、楼层连接器和可通行边权支撑后才能成为有效功能。
|
||||
- 馆外“来馆”和馆内导览是两条业务线,需要保持解耦。
|
||||
|
||||
## 需要产品确认的问题
|
||||
|
||||
1. 首页快捷入口是否保留“推荐展厅 / 我的收藏”,还是只保留“馆内导览 / 来馆”。
|
||||
2. 搜索结果的默认动作优先级:先“查看位置”,还是直接支持“去这里”。
|
||||
3. 在 `NAV_ROUTE_GRAPH_READY=false` 阶段,路线面板主按钮文案是否统一为“查看位置关系”。
|
||||
4. “模拟导览”是否作为正式导航前的演示能力开放,还是仅用于内部验证。
|
||||
5. 跨楼层导览是否优先支持“电梯优先”,以及无障碍路线是否需要独立入口。
|
||||
6. 到达目标后的下一步优先级:查看详情、相关讲解、收藏、重新规划如何排序。
|
||||
7. SDK 未加载、定位不可用、路线不可用是否需要统一错误码和诊断入口。
|
||||
|
||||
## 生成 Prompt 摘要
|
||||
|
||||
每张图均使用 `ui-mockup` 类型,移动端 H5 / 小程序竖屏构图,强调以下信息:
|
||||
|
||||
- 画面名称和业务状态。
|
||||
- 用户当前目标。
|
||||
- 关键组件与交互意图。
|
||||
- 本项目视觉语气:浅灰绿地图底、白色浮层、黑色主按钮、低饱和边框、清晰中文层级。
|
||||
- 避免项:不复刻对标视频 UI,不使用对标颜色 / 图标 / 字体 / 精确布局,不承诺未经验证的正式导航能力。
|
||||
|
After Width: | Height: | Size: 357 KiB |
|
After Width: | Height: | Size: 235 KiB |
@@ -0,0 +1,48 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".48" stop-color="#EEF5F7"/><stop offset="1" stop-color="#DFE9EE"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".68" stop-color="#EEF4F6"/><stop offset="1" stop-color="#D8E4EA"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CFDAE1"/><stop offset="1" stop-color="#A9B9C3"/></linearGradient>
|
||||
<linearGradient id="greenSoft" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#EAF5ED"/><stop offset="1" stop-color="#CCE6D6"/></linearGradient>
|
||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#DFF1F8"/><stop offset="1" stop-color="#B7D9EA"/></linearGradient>
|
||||
<radialGradient id="glow" cx="50%" cy="50%" r="70%"><stop offset="0" stop-color="#2C854F" stop-opacity=".22"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.blue{fill:#1B6EC0}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glass{fill:#fff;fill-opacity:.78;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.68;stroke:#AEBEC7;stroke-width:.7}.garden{fill:url(#greenSoft);stroke:#C7E1D0;stroke-width:1}.water{fill:url(#water);opacity:.55}.label{fill:#fff;stroke:#D9D9D9;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/>
|
||||
|
||||
<clipPath id="clipA"><rect x="14" y="96" width="362" height="650" rx="22"/></clipPath>
|
||||
<rect x="14" y="96" width="362" height="650" rx="22" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#clipA)" opacity="1">
|
||||
<circle cx="296.36" cy="200" r="123.08000000000001" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="86.4" cy="590" r="137.56" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 213 L436 128.5" stroke="#BFD8E4" stroke-width="14" opacity=".36"/><path d="M-26 226 L436 141.5" stroke="#fff" stroke-width="6" opacity=".65"/>
|
||||
<path d="M-36 668 L446 577" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-26 674.5 L436 583.5" stroke="#fff" stroke-width="6" opacity=".68"/>
|
||||
<g transform="translate(21.240000000000002 122) scale(0.98) rotate(-18 181 273)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".75"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".24" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M271.02 265 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M280.07 271.5 l-18 10 l20 3 l-10 15 M292.74 271.5 l8 16 l18 8"/></g>
|
||||
<g filter="url(#tiny)" class="font">
|
||||
<rect x="71.92" y="258.5" width="112" height="48" rx="11" class="label"/><text x="127.92" y="278.5" text-anchor="middle" font-size="13">地球演化厅</text><text x="127.92" y="295.5" text-anchor="middle" font-size="12">1F-03</text>
|
||||
<rect x="220.33999999999997" y="323.5" width="118" height="52" rx="11" class="label"/><text x="279.34" y="345.5" text-anchor="middle" font-size="14" font-weight="700">恐龙化石展厅</text><text x="279.34" y="363.5" text-anchor="middle" font-size="13">1F-02</text>
|
||||
<circle cx="260.16" cy="313.75" r="32" fill="url(#glow)"/><path d="M260.16 278 C242.06 278 231.2 297.5 231.2 323.5 C231.2 362.5 260.16 395 260.16 395 C260.16 395 289.12 362.5 289.12 323.5 C289.12 297.5 278.26 278 260.16 278 Z" fill="#2C854F"/><circle cx="260.16" cy="317" r="9" fill="#fff"/>
|
||||
<rect x="46.58" y="551" width="126" height="48" rx="11" class="label"/><text x="109.58" y="571" text-anchor="middle" font-size="13">矿物与岩石厅</text><text x="109.58" y="588" text-anchor="middle" font-size="12">1F-04</text>
|
||||
</g></g>
|
||||
<g filter="url(#soft)"><rect x="22" y="96" width="346" height="50" rx="16" class="glass"/><text x="42" y="126" class="font muted" font-size="14">搜索地点</text><circle cx="34" cy="121" r="7" fill="none" stroke="#565A5E" stroke-width="2"/><path d="M40 127 l7 7" stroke="#565A5E" stroke-width="2" stroke-linecap="round"/></g>
|
||||
<g filter="url(#soft)"><rect x="214" y="26" width="72" height="36" rx="18" fill="#fff" stroke="#D9D9D9"/><text x="250" y="50" text-anchor="middle" class="font green heavy" font-size="18">讲解</text></g><g filter="url(#soft)"><rect x="298" y="26" width="72" height="36" rx="18" fill="#fff" stroke="#D9D9D9"/><text x="334" y="50" text-anchor="middle" class="font green heavy" font-size="18">来馆</text></g>
|
||||
<g filter="url(#tiny)"><rect x="28" y="158" width="62" height="46" rx="14" fill="#fff" fill-opacity="0.9" stroke="#D9D9D9"/><text x="59" y="179" text-anchor="middle" class="font green heavy" font-size="17">□</text><text x="59" y="194" text-anchor="middle" class="font black bold" font-size="10">图例</text></g><g filter="url(#tiny)"><rect x="100" y="158" width="62" height="46" rx="14" fill="#fff" fill-opacity="0.9" stroke="#D9D9D9"/><text x="131" y="179" text-anchor="middle" class="font green heavy" font-size="17">WC</text><text x="131" y="194" text-anchor="middle" class="font black bold" font-size="10">设施</text></g>
|
||||
<g filter="url(#tiny)"><rect x="326" y="310" width="40" height="132" rx="14" class="glass"/><text x="346" y="339" text-anchor="middle" class="font text" font-size="15">2F</text><line x1="334" y1="353" x2="358" y2="353" class="line"/><rect x="326" y="354" width="40" height="40" rx="9" fill="#000"/><text x="346" y="380" text-anchor="middle" class="font lime heavy" font-size="17">1F</text><line x1="334" y1="394" x2="358" y2="394" class="line"/><text x="346" y="422" text-anchor="middle" class="font text" font-size="15">B1</text></g>
|
||||
<g filter="url(#tiny)"><rect x="326" y="640" width="40" height="40" rx="13" class="glass"/><text x="346" y="666" text-anchor="middle" class="font text" font-size="18">⌖</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="770" width="342" height="54" rx="27" fill="#000" stroke="#000"/><text x="195" y="803" text-anchor="middle" class="font lime heavy" font-size="18">开始馆内导览</text></g>
|
||||
<text x="18" y="54" class="font black heavy" font-size="34">导览</text><text x="18" y="75" class="font muted" font-size="11">地图优先型</text></svg>
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 253 KiB |
@@ -0,0 +1,49 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".48" stop-color="#EEF5F7"/><stop offset="1" stop-color="#DFE9EE"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".68" stop-color="#EEF4F6"/><stop offset="1" stop-color="#D8E4EA"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CFDAE1"/><stop offset="1" stop-color="#A9B9C3"/></linearGradient>
|
||||
<linearGradient id="greenSoft" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#EAF5ED"/><stop offset="1" stop-color="#CCE6D6"/></linearGradient>
|
||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#DFF1F8"/><stop offset="1" stop-color="#B7D9EA"/></linearGradient>
|
||||
<radialGradient id="glow" cx="50%" cy="50%" r="70%"><stop offset="0" stop-color="#2C854F" stop-opacity=".22"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.blue{fill:#1B6EC0}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glass{fill:#fff;fill-opacity:.78;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.68;stroke:#AEBEC7;stroke-width:.7}.garden{fill:url(#greenSoft);stroke:#C7E1D0;stroke-width:1}.water{fill:url(#water);opacity:.55}.label{fill:#fff;stroke:#D9D9D9;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/>
|
||||
|
||||
<clipPath id="clipB"><rect x="0" y="90" width="390" height="754" rx="22"/></clipPath>
|
||||
<rect x="0" y="90" width="390" height="754" rx="22" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#clipB)" opacity="1">
|
||||
<circle cx="304.2" cy="210.64" r="132.60000000000002" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="78" cy="663.04" r="148.2" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-40 225.72 L450 127.7" stroke="#BFD8E4" stroke-width="14" opacity=".36"/><path d="M-40 240.8 L450 142.78" stroke="#fff" stroke-width="6" opacity=".65"/>
|
||||
<path d="M-50 753.52 L460 647.96" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-40 761.0600000000001 L450 655.5" stroke="#fff" stroke-width="6" opacity=".68"/>
|
||||
<g transform="translate(7.8 120.16) scale(1.08) rotate(-18 195 316.68)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".75"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".24" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M276.9 286.04 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M286.65 293.58000000000004 l-18 10 l20 3 l-10 15 M300.3 293.58000000000004 l8 16 l18 8"/></g>
|
||||
<g filter="url(#tiny)" class="font">
|
||||
<rect x="62.4" y="278.5" width="112" height="48" rx="11" class="label"/><text x="118.4" y="298.5" text-anchor="middle" font-size="13">地球演化厅</text><text x="118.4" y="315.5" text-anchor="middle" font-size="12">1F-03</text>
|
||||
<rect x="222.29999999999998" y="353.9" width="118" height="52" rx="11" class="label"/><text x="281.29999999999995" y="375.9" text-anchor="middle" font-size="14" font-weight="700">恐龙化石展厅</text><text x="281.29999999999995" y="393.9" text-anchor="middle" font-size="13">1F-02</text>
|
||||
<circle cx="265.20000000000005" cy="342.59000000000003" r="32" fill="url(#glow)"/><path d="M265.20000000000005 301.12 C245.7 301.12 234 323.74 234 353.9 C234 399.14 265.20000000000005 436.84000000000003 265.20000000000005 436.84000000000003 C265.20000000000005 436.84000000000003 296.4 399.14 296.4 353.9 C296.4 323.74 284.7 301.12 265.20000000000005 301.12 Z" fill="#2C854F"/><circle cx="265.20000000000005" cy="346.36" r="9" fill="#fff"/>
|
||||
<rect x="35.1" y="617.8" width="126" height="48" rx="11" class="label"/><text x="98.1" y="637.8" text-anchor="middle" font-size="13">矿物与岩石厅</text><text x="98.1" y="654.8" text-anchor="middle" font-size="12">1F-04</text>
|
||||
</g></g>
|
||||
<rect x="0" y="90" width="390" height="754" fill="none" stroke="#E3E6E8"/>
|
||||
<g filter="url(#soft)"><rect x="226" y="24" width="68" height="38" rx="19" fill="#000"/><text x="260" y="49" text-anchor="middle" class="font lime heavy" font-size="17">讲解</text><rect x="304" y="24" width="68" height="38" rx="19" fill="#fff" stroke="#D9D9D9"/><text x="338" y="49" text-anchor="middle" class="font green heavy" font-size="17">来馆</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="105" width="236" height="42" rx="21" class="glass"/><circle cx="45" cy="126" r="7" fill="none" stroke="#565A5E" stroke-width="2"/><path d="M51 132 l7 7" stroke="#565A5E" stroke-width="2" stroke-linecap="round"/><text x="70" y="132" class="font muted" font-size="13">搜索展厅或设施</text></g>
|
||||
<g filter="url(#soft)"><rect x="306" y="158" width="60" height="150" rx="18" fill="#fff" fill-opacity=".88" stroke="#D9D9D9"/><text x="336" y="190" text-anchor="middle" class="font green heavy" font-size="20">▶</text><text x="336" y="210" text-anchor="middle" class="font black bold" font-size="11">讲解</text><line x1="318" y1="232" x2="354" y2="232" class="line"/><text x="336" y="263" text-anchor="middle" class="font green heavy" font-size="20">↗</text><text x="336" y="283" text-anchor="middle" class="font black bold" font-size="11">来馆</text></g>
|
||||
<g filter="url(#tiny)"><rect x="326" y="340" width="40" height="132" rx="14" class="glass"/><text x="346" y="369" text-anchor="middle" class="font text" font-size="15">2F</text><line x1="334" y1="383" x2="358" y2="383" class="line"/><rect x="326" y="384" width="40" height="40" rx="9" fill="#000"/><text x="346" y="410" text-anchor="middle" class="font lime heavy" font-size="17">1F</text><line x1="334" y1="424" x2="358" y2="424" class="line"/><text x="346" y="452" text-anchor="middle" class="font text" font-size="15">B1</text></g>
|
||||
<g filter="url(#tiny)"><rect x="24" y="702" width="140" height="34" rx="17" class="glass"/><text x="94" y="724" text-anchor="middle" class="font text" font-size="12">1F 三维地图</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="770" width="342" height="54" rx="27" fill="#000" stroke="#000"/><text x="195" y="803" text-anchor="middle" class="font lime heavy" font-size="18">开始导览</text></g>
|
||||
<text x="18" y="54" class="font black heavy" font-size="34">导览</text><text x="18" y="75" class="font muted" font-size="11">沉浸任务轨</text></svg>
|
||||
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 233 KiB |
@@ -0,0 +1,46 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".48" stop-color="#EEF5F7"/><stop offset="1" stop-color="#DFE9EE"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".68" stop-color="#EEF4F6"/><stop offset="1" stop-color="#D8E4EA"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CFDAE1"/><stop offset="1" stop-color="#A9B9C3"/></linearGradient>
|
||||
<linearGradient id="greenSoft" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#EAF5ED"/><stop offset="1" stop-color="#CCE6D6"/></linearGradient>
|
||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#DFF1F8"/><stop offset="1" stop-color="#B7D9EA"/></linearGradient>
|
||||
<radialGradient id="glow" cx="50%" cy="50%" r="70%"><stop offset="0" stop-color="#2C854F" stop-opacity=".22"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.blue{fill:#1B6EC0}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glass{fill:#fff;fill-opacity:.78;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.68;stroke:#AEBEC7;stroke-width:.7}.garden{fill:url(#greenSoft);stroke:#C7E1D0;stroke-width:1}.water{fill:url(#water);opacity:.55}.label{fill:#fff;stroke:#D9D9D9;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/>
|
||||
|
||||
<clipPath id="clipC"><rect x="14" y="118" width="362" height="548" rx="22"/></clipPath>
|
||||
<rect x="14" y="118" width="362" height="548" rx="22" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#clipC)" opacity="1">
|
||||
<circle cx="296.36" cy="205.68" r="123.08000000000001" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="86.4" cy="534.48" r="137.56" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 216.64 L436 145.4" stroke="#BFD8E4" stroke-width="14" opacity=".36"/><path d="M-26 227.60000000000002 L436 156.36" stroke="#fff" stroke-width="6" opacity=".65"/>
|
||||
<path d="M-36 600.24 L446 523.52" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-26 605.72 L436 529" stroke="#fff" stroke-width="6" opacity=".68"/>
|
||||
<g transform="translate(21.240000000000002 139.92000000000002) scale(0.94) rotate(-18 181 230.16)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".75"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".24" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M271.02 260.48 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M280.07 265.96000000000004 l-18 10 l20 3 l-10 15 M292.74 265.96000000000004 l8 16 l18 8"/></g>
|
||||
<g filter="url(#tiny)" class="font">
|
||||
<rect x="71.92" y="255" width="112" height="48" rx="11" class="label"/><text x="127.92" y="275" text-anchor="middle" font-size="13">地球演化厅</text><text x="127.92" y="292" text-anchor="middle" font-size="12">1F-03</text>
|
||||
<rect x="220.33999999999997" y="309.79999999999995" width="118" height="52" rx="11" class="label"/><text x="279.34" y="331.79999999999995" text-anchor="middle" font-size="14" font-weight="700">恐龙化石展厅</text><text x="279.34" y="349.79999999999995" text-anchor="middle" font-size="13">1F-02</text>
|
||||
<circle cx="260.16" cy="301.58000000000004" r="32" fill="url(#glow)"/><path d="M260.16 271.44000000000005 C242.06 271.44000000000005 231.2 287.88 231.2 309.79999999999995 C231.2 342.67999999999995 260.16 370.08000000000004 260.16 370.08000000000004 C260.16 370.08000000000004 289.12 342.67999999999995 289.12 309.79999999999995 C289.12 287.88 278.26 271.44000000000005 260.16 271.44000000000005 Z" fill="#2C854F"/><circle cx="260.16" cy="304.32000000000005" r="9" fill="#fff"/>
|
||||
<rect x="46.58" y="501.59999999999997" width="126" height="48" rx="11" class="label"/><text x="109.58" y="521.5999999999999" text-anchor="middle" font-size="13">矿物与岩石厅</text><text x="109.58" y="538.5999999999999" text-anchor="middle" font-size="12">1F-04</text>
|
||||
</g></g>
|
||||
<g filter="url(#soft)"><rect x="22" y="92" width="346" height="44" rx="14" class="glass"/><circle cx="44" cy="114" r="7" fill="none" stroke="#565A5E" stroke-width="2"/><path d="M50 120 l7 7" stroke="#565A5E" stroke-width="2" stroke-linecap="round"/><text x="70" y="120" class="font muted" font-size="14">搜索展厅、设施</text><text x="337" y="121" text-anchor="middle" class="font green heavy" font-size="15">1F</text></g>
|
||||
<g filter="url(#tiny)"><rect x="326" y="290" width="40" height="132" rx="14" class="glass"/><text x="346" y="319" text-anchor="middle" class="font text" font-size="15">2F</text><line x1="334" y1="333" x2="358" y2="333" class="line"/><rect x="326" y="334" width="40" height="40" rx="9" fill="#000"/><text x="346" y="360" text-anchor="middle" class="font lime heavy" font-size="17">1F</text><line x1="334" y1="374" x2="358" y2="374" class="line"/><text x="346" y="402" text-anchor="middle" class="font text" font-size="15">B1</text></g>
|
||||
<g filter="url(#tiny)"><rect x="26" y="608" width="104" height="34" rx="17" class="glass"/><text x="78" y="630" text-anchor="middle" class="font text" font-size="12">查看图例</text><rect x="140" y="608" width="104" height="34" rx="17" class="glass"/><text x="192" y="630" text-anchor="middle" class="font text" font-size="12">设施筛选</text></g>
|
||||
<g filter="url(#shadow)"><rect x="18" y="690" width="354" height="130" rx="22" fill="#fff" stroke="#D9D9D9"/><text x="36" y="722" class="font black heavy" font-size="20">准备开始导览</text><text x="36" y="746" class="font muted" font-size="12">选择讲解或来馆,也可以直接进入馆内导览</text><g filter="url(#tiny)"><rect x="36" y="760" width="62" height="46" rx="14" fill="#fff" fill-opacity="0.9" stroke="#D9D9D9"/><text x="67" y="781" text-anchor="middle" class="font green heavy" font-size="17">▶</text><text x="67" y="796" text-anchor="middle" class="font black bold" font-size="10">讲解</text></g><g filter="url(#tiny)"><rect x="118" y="760" width="62" height="46" rx="14" fill="#fff" fill-opacity="0.9" stroke="#D9D9D9"/><text x="149" y="781" text-anchor="middle" class="font green heavy" font-size="17">↗</text><text x="149" y="796" text-anchor="middle" class="font black bold" font-size="10">来馆</text></g><rect x="210" y="760" width="138" height="46" rx="13" fill="#000"/><text x="279" y="790" text-anchor="middle" class="font lime heavy" font-size="17">开始导览</text></g>
|
||||
<text x="18" y="54" class="font black heavy" font-size="34">导览</text><text x="18" y="75" class="font muted" font-size="11">底部任务 Dock</text></svg>
|
||||
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 217 KiB |
@@ -0,0 +1,46 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".48" stop-color="#EEF5F7"/><stop offset="1" stop-color="#DFE9EE"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".68" stop-color="#EEF4F6"/><stop offset="1" stop-color="#D8E4EA"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CFDAE1"/><stop offset="1" stop-color="#A9B9C3"/></linearGradient>
|
||||
<linearGradient id="greenSoft" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#EAF5ED"/><stop offset="1" stop-color="#CCE6D6"/></linearGradient>
|
||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#DFF1F8"/><stop offset="1" stop-color="#B7D9EA"/></linearGradient>
|
||||
<radialGradient id="glow" cx="50%" cy="50%" r="70%"><stop offset="0" stop-color="#2C854F" stop-opacity=".22"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.blue{fill:#1B6EC0}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glass{fill:#fff;fill-opacity:.78;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.68;stroke:#AEBEC7;stroke-width:.7}.garden{fill:url(#greenSoft);stroke:#C7E1D0;stroke-width:1}.water{fill:url(#water);opacity:.55}.label{fill:#fff;stroke:#D9D9D9;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/>
|
||||
|
||||
<clipPath id="clipD"><rect x="14" y="102" width="362" height="612" rx="22"/></clipPath>
|
||||
<rect x="14" y="102" width="362" height="612" rx="22" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#clipD)" opacity="1">
|
||||
<circle cx="296.36" cy="199.92000000000002" r="123.08000000000001" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="86.4" cy="567.12" r="137.56" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 212.16 L436 132.6" stroke="#BFD8E4" stroke-width="14" opacity=".36"/><path d="M-26 224.4 L436 144.84" stroke="#fff" stroke-width="6" opacity=".65"/>
|
||||
<path d="M-36 640.5600000000001 L446 554.88" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-26 646.6800000000001 L436 561" stroke="#fff" stroke-width="6" opacity=".68"/>
|
||||
<g transform="translate(21.240000000000002 126.48) scale(1.02) rotate(-18 181 257.03999999999996)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".75"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".24" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M271.02 261.12 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M280.07 267.24 l-18 10 l20 3 l-10 15 M292.74 267.24 l8 16 l18 8"/></g>
|
||||
<g filter="url(#tiny)" class="font">
|
||||
<rect x="71.92" y="255" width="112" height="48" rx="11" class="label"/><text x="127.92" y="275" text-anchor="middle" font-size="13">地球演化厅</text><text x="127.92" y="292" text-anchor="middle" font-size="12">1F-03</text>
|
||||
<rect x="220.33999999999997" y="316.2" width="118" height="52" rx="11" class="label"/><text x="279.34" y="338.2" text-anchor="middle" font-size="14" font-weight="700">恐龙化石展厅</text><text x="279.34" y="356.2" text-anchor="middle" font-size="13">1F-02</text>
|
||||
<circle cx="260.16" cy="307.02" r="32" fill="url(#glow)"/><path d="M260.16 273.36 C242.06 273.36 231.2 291.72 231.2 316.2 C231.2 352.91999999999996 260.16 383.52000000000004 260.16 383.52000000000004 C260.16 383.52000000000004 289.12 352.91999999999996 289.12 316.2 C289.12 291.72 278.26 273.36 260.16 273.36 Z" fill="#2C854F"/><circle cx="260.16" cy="310.08000000000004" r="9" fill="#fff"/>
|
||||
<rect x="46.58" y="530.4" width="126" height="48" rx="11" class="label"/><text x="109.58" y="550.4" text-anchor="middle" font-size="13">矿物与岩石厅</text><text x="109.58" y="567.4" text-anchor="middle" font-size="12">1F-04</text>
|
||||
</g></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="105" width="225" height="40" rx="20" class="glass"/><text x="48" y="130" class="font muted" font-size="13">搜索</text><circle cx="39" cy="124" r="6" fill="none" stroke="#565A5E" stroke-width="2"/><path d="M44 129 l6 6" stroke="#565A5E" stroke-width="2" stroke-linecap="round"/></g>
|
||||
<g filter="url(#tiny)"><rect x="260" y="105" width="50" height="40" rx="13" fill="#000"/><text x="285" y="130" text-anchor="middle" class="font lime heavy" font-size="14">地图</text><rect x="318" y="105" width="48" height="40" rx="13" class="glass"/><text x="342" y="130" text-anchor="middle" class="font text" font-size="14">1F</text></g>
|
||||
<g filter="url(#shadow)"><rect x="26" y="642" width="338" height="74" rx="18" fill="#fff" stroke="#D9D9D9"/><text x="44" y="671" class="font black heavy" font-size="18">恐龙化石展厅</text><text x="44" y="694" class="font muted" font-size="12">1F-02 · 已在三维地图中定位</text><rect x="250" y="660" width="94" height="40" rx="12" fill="#000"/><text x="297" y="686" text-anchor="middle" class="font lime heavy" font-size="15">开始导览</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="735" width="164" height="58" rx="16" fill="#fff" stroke="#D9D9D9"/><text x="48" y="760" class="font green heavy" font-size="18">▶ 讲解</text><text x="48" y="778" class="font muted" font-size="11">听展厅内容</text><rect x="202" y="735" width="164" height="58" rx="16" fill="#fff" stroke="#D9D9D9"/><text x="226" y="760" class="font green heavy" font-size="18">↗ 来馆</text><text x="226" y="778" class="font muted" font-size="11">查看到馆方式</text></g>
|
||||
<text x="18" y="54" class="font black heavy" font-size="34">导览</text><text x="18" y="75" class="font muted" font-size="11">点位聚焦型</text></svg>
|
||||
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 191 KiB |
@@ -0,0 +1,40 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".48" stop-color="#EEF5F7"/><stop offset="1" stop-color="#DFE9EE"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset=".68" stop-color="#EEF4F6"/><stop offset="1" stop-color="#D8E4EA"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#CFDAE1"/><stop offset="1" stop-color="#A9B9C3"/></linearGradient>
|
||||
<linearGradient id="greenSoft" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#EAF5ED"/><stop offset="1" stop-color="#CCE6D6"/></linearGradient>
|
||||
<linearGradient id="water" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#DFF1F8"/><stop offset="1" stop-color="#B7D9EA"/></linearGradient>
|
||||
<radialGradient id="glow" cx="50%" cy="50%" r="70%"><stop offset="0" stop-color="#2C854F" stop-opacity=".22"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.blue{fill:#1B6EC0}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;fill-opacity:.9;stroke:#D9D9D9;stroke-width:1}.glass{fill:#fff;fill-opacity:.78;stroke:#D9D9D9;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.68;stroke:#AEBEC7;stroke-width:.7}.garden{fill:url(#greenSoft);stroke:#C7E1D0;stroke-width:1}.water{fill:url(#water);opacity:.55}.label{fill:#fff;stroke:#D9D9D9;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/>
|
||||
<text x="18" y="108" class="font black heavy" font-size="22">深圳自然博物馆</text><text x="18" y="132" class="font muted" font-size="13">馆内三维导览</text>
|
||||
|
||||
<clipPath id="clipE"><rect x="26" y="150" width="338" height="470" rx="28"/></clipPath>
|
||||
<rect x="26" y="150" width="338" height="470" rx="28" fill="url(#mapBg)" stroke="#D9D9D9" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#clipE)" opacity="1">
|
||||
<circle cx="289.64" cy="225.2" r="114.92" fill="#2C854F" opacity=".055"/>
|
||||
<circle cx="93.60000000000001" cy="507.2" r="128.44" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-14 234.6 L424 173.5" stroke="#BFD8E4" stroke-width="14" opacity=".36"/><path d="M-14 244 L424 182.9" stroke="#fff" stroke-width="6" opacity=".65"/>
|
||||
<path d="M-24 563.6 L434 497.8" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-14 568.3 L424 502.5" stroke="#fff" stroke-width="6" opacity=".68"/>
|
||||
<g transform="translate(32.76 168.8) scale(0.86) rotate(-18 169 197.4)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".75"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".24" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M265.98 272.2 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M274.43 276.9 l-18 10 l20 3 l-10 15 M286.26 276.9 l8 16 l18 8"/></g></g>
|
||||
<g filter="url(#soft)"><rect x="52" y="503" width="286" height="70" rx="18" fill="#fff" stroke="#D9D9D9"/><text x="195" y="530" text-anchor="middle" class="font black heavy" font-size="18">三维地图已就绪</text><text x="195" y="554" text-anchor="middle" class="font muted" font-size="12">查看展厅位置、楼层与服务设施</text></g>
|
||||
<g filter="url(#tiny)"><rect x="286" y="168" width="52" height="36" rx="14" class="glass"/><text x="312" y="191" text-anchor="middle" class="font green heavy" font-size="14">1F</text><rect x="286" y="212" width="52" height="36" rx="14" class="glass"/><text x="312" y="235" text-anchor="middle" class="font text" font-size="14">⌖</text></g>
|
||||
<g filter="url(#shadow)"><rect x="18" y="660" width="354" height="160" rx="24" fill="#fff" stroke="#D9D9D9"/><text x="42" y="696" class="font black heavy" font-size="21">你想先做什么?</text><rect x="42" y="718" width="140" height="54" rx="15" fill="#000"/><text x="112" y="752" text-anchor="middle" class="font lime heavy" font-size="18">开始导览</text><rect x="196" y="718" width="68" height="54" rx="15" fill="#fff" stroke="#D9D9D9"/><text x="230" y="741" text-anchor="middle" class="font green heavy" font-size="17">▶</text><text x="230" y="758" text-anchor="middle" class="font black bold" font-size="10">讲解</text><rect x="280" y="718" width="68" height="54" rx="15" fill="#fff" stroke="#D9D9D9"/><text x="314" y="741" text-anchor="middle" class="font green heavy" font-size="18">↗</text><text x="314" y="758" text-anchor="middle" class="font black bold" font-size="10">来馆</text></g>
|
||||
<text x="18" y="54" class="font black heavy" font-size="34">导览</text><text x="18" y="75" class="font muted" font-size="11">极简主视觉</text></svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
44
docs/Benchmark/generated-guide-home-5-options/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# H5 导览首页 5 套设计方向
|
||||
|
||||
本目录提供 5 套 H5 首页高保真方向稿,用于选择信息架构和首页主体验证。设计重点为:三维组件、`讲解`入口、`来馆`入口。其他功能仅作为弱辅助控件出现。
|
||||
|
||||
## 文件
|
||||
|
||||
- `00-contact-sheet.png`:5 套方案总览图。
|
||||
- `01-01-map-first.png`:方案一,地图画布 + 顶部双入口。
|
||||
- `02-02-immersive-rail.png`:方案二,沉浸三维 + 右侧任务轨。
|
||||
- `03-03-bottom-dock.png`:方案三,三维首页 + 底部三任务 Dock。
|
||||
- `04-04-poi-focus.png`:方案四,点位聚焦 + 双入口卡片。
|
||||
- `05-05-ultra-minimal.png`:方案五,极简三维主视觉。
|
||||
|
||||
每套 PNG 均配有同名 SVG 源稿,方便后续继续调整。
|
||||
|
||||
## 方案说明
|
||||
|
||||
### 方案一:地图画布 + 顶部双入口
|
||||
|
||||
三维地图占据主屏,`讲解`和`来馆`作为顶部轻量胶囊入口。适合保留传统导览首页结构,同时弱化其他功能。
|
||||
|
||||
### 方案二:沉浸三维 + 右侧任务轨
|
||||
|
||||
三维地图更沉浸,`讲解`和`来馆`在右侧任务轨中出现,强调地图操作感。适合希望首页更像地图工具的方向。
|
||||
|
||||
### 方案三:三维首页 + 底部三任务 Dock
|
||||
|
||||
三维地图在上,底部集中承接 `讲解`、`来馆`、`开始导览`。适合把首页主任务集中到下方操作区的方向。
|
||||
|
||||
### 方案四:点位聚焦 + 双入口卡片
|
||||
|
||||
默认突出一个展厅点位,底部提供 `讲解`和`来馆`两个卡片入口。适合首页默认带展厅推荐点位或当前位置点位的方向。
|
||||
|
||||
### 方案五:极简三维主视觉
|
||||
|
||||
最大幅度减少功能组件,只保留三维地图主视觉和底部核心任务选择。适合追求首页干净、低学习成本的方向。
|
||||
|
||||
## 需要确认
|
||||
|
||||
- 首页是否需要默认展示搜索入口,还是仅保留三维地图和任务入口。
|
||||
- `讲解`入口是进入讲解列表,还是进入当前展厅讲解。
|
||||
- `来馆`入口是外部导航、路线说明,还是馆外地图页。
|
||||
- `开始导览`是否仍作为首页主按钮保留,或被三维地图点击/点位点击替代。
|
||||
- 楼层、定位、图例、设施筛选是否必须首屏可见,还是可以收纳到地图工具菜单中。
|
||||
221
docs/Benchmark/guide-video-ux-logic-analysis.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# 对标导览小程序 UX 与功能逻辑分析
|
||||
|
||||
## 1. 分析范围
|
||||
|
||||
- 对标视频:`E:\下载\导览.mp4`
|
||||
- 视频信息:约 66.43 秒,448 x 960,30fps,竖屏小程序录屏。
|
||||
- 本报告只抽取导览应用的功能逻辑、任务闭环、状态机和交互流程,不做 UI 视觉还原。
|
||||
- 本项目对照范围:`frontend-miniapp` 的 H5 导览业务源码,重点看 `src/pages/index/index.vue`、`src/components/navigation/*`、`src/components/map/ThreeMap.vue`、`src/pages/search/index.vue`、`src/pages/route/detail.vue`、`src/domain/guideReadiness.ts`、`src/usecases/guideRouteUseCase.ts`。
|
||||
|
||||
## 2. 抽帧与时间线方法
|
||||
|
||||
已使用 ffmpeg 抽帧,并用 OpenCV 计算逐秒帧差,形成视频时间线。
|
||||
|
||||
分析素材:
|
||||
|
||||
- 抽帧拼图:`.codex-artifacts/benchmark-guide-logic/timeline_contact_sheet.jpg`
|
||||
- 逐秒帧:`.codex-artifacts/benchmark-guide-logic/frames/t_001.jpg` 至 `t_066.jpg`
|
||||
- 关键帧:`.codex-artifacts/benchmark-guide-logic/key_01.jpg` 至 `key_16.jpg`
|
||||
- OpenCV 时间线:`.codex-artifacts/benchmark-guide-logic/opencv_timeline.json`
|
||||
|
||||
OpenCV 识别出的主要画面转折点为:`00:02`、`00:06`、`00:15`、`00:18`、`00:24`、`00:34`、`00:38`、`00:39`、`00:40`、`00:43`、`00:53`、`00:62`、`00:63`。这些时间点基本对应加载完成、进入分类列表、切换选点态、键盘搜索、确认起点、路线预览、开始模拟导航、退出导览等状态变化。
|
||||
|
||||
## 3. 视频时间线
|
||||
|
||||
| 时间段 | 画面 / 状态 | 用户动作 | 系统反馈 | 关键帧 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 00:00-00:02 | 小程序加载页,展示馆名和加载进度 | 打开小程序 | 进入导览主页前的启动反馈 | `key_01.jpg` |
|
||||
| 00:02-00:06 | 导览主页,地图为主界面,顶部搜索,右侧工具,底部功能入口 | 等待地图加载或浏览首页 | 默认落在导览地图,可直接搜索、来馆、更多或进入推荐内容 | `key_02.jpg` |
|
||||
| 00:06-00:15 | 分类 / 地图列表态,展示设施分类图标、楼层切换、POI 列表 | 点击地图 / 分类入口,浏览设施 | 同屏保留地图上下文和下方列表,用户不离开导览上下文 | `key_03.jpg` |
|
||||
| 00:15-00:18 | 分类无结果提示 | 点击暂无数据的分类,如饮料售卖机 | Toast 提示暂无结果,仍停留当前列表,不打断任务 | `key_04.jpg` |
|
||||
| 00:18-00:24 | 路线规划选点态,顶部起终点条,下方提示选择起点,模拟导航按钮置灰 | 进入路线规划,未选起点时尝试继续 | 提示必须先选起点,主按钮保持不可用 | `key_05.jpg`、`key_06.jpg` |
|
||||
| 00:24-00:34 | 搜索 / 选点态,弹出键盘,用户输入或选择点位 | 选择起点或终点 | 候选点位列表更新,地图仍作为空间参考 | `key_09.jpg`、`key_10.jpg` |
|
||||
| 00:34-00:38 | 选择确认态,地图上出现选点标记,底部弹出确认或点位卡 | 确认将该点设为起点 / 终点 | 起终点条更新,进入路线可规划状态 | `key_11.jpg`、`key_12.jpg` |
|
||||
| 00:38-00:43 | 路线方案态,展示推荐路线、不走楼梯、电梯等方案,显示时间 / 距离 | 查看路线方案,点击模拟导航 | 路线叠加到地图,主按钮由不可用变为可启动 | `key_08.jpg` |
|
||||
| 00:43-00:53 | 导航中态,顶部转向指令卡,地图路线、当前位置箭头、语音 / 低速 / 楼层 / 缩放控件,底部目的地与退出 | 模拟导航进行中 | 给出连续导航指令和当前位置反馈,保留退出导览能力 | `key_07.jpg` |
|
||||
| 00:53-00:62 | 导航中跨步骤 / 结束前状态 | 继续模拟导航或操作退出 | 当前步骤更新,路线和目的地状态持续可见 | `key_13.jpg`、`key_14.jpg` |
|
||||
| 00:62-00:66 | 退出导览后回到地图 / 列表态 | 点击退出或完成导览 | 清理导航态,回到可再次搜索 / 分类 / 规划的导览首页 | `key_15.jpg`、`key_16.jpg` |
|
||||
|
||||
## 4. 对标应用的用户任务闭环
|
||||
|
||||
对标应用的核心闭环不是单个“搜索结果页”,而是围绕地图持续完成任务:
|
||||
|
||||
1. 进入导览首页:地图即工作台,用户先获得空间上下文。
|
||||
2. 找目标:通过搜索、分类、楼层列表或地图点选定位目标。
|
||||
3. 定起终点:路线规划需要明确起点和终点,未满足条件时主动作禁用并给出原因。
|
||||
4. 看方案:系统生成推荐路线,并提供偏好方案,如不走楼梯、电梯。
|
||||
5. 开始导览:从路线方案进入导航中,地图、路线、位置、转向指令同步变化。
|
||||
6. 导航中纠偏:持续显示当前指令、楼层、缩放、语音等控制,用户可以退出。
|
||||
7. 结束 / 退出:退出后清理导航态,返回导览主页,可继续搜索或重新规划。
|
||||
|
||||
这个闭环的 UX 关键点是“上下文不断裂”:搜索、分类、选点、路线、导航都嵌在地图任务里,用户很少被推到孤立页面。
|
||||
|
||||
## 5. 导览状态机
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Loading
|
||||
Loading --> MapHome
|
||||
MapHome --> CategoryList: 打开地图/分类
|
||||
MapHome --> SearchSelecting: 搜索或选点
|
||||
MapHome --> RoutePointPicking: 进入路线规划
|
||||
CategoryList --> EmptyCategory: 分类无结果
|
||||
EmptyCategory --> CategoryList: Toast 后停留
|
||||
CategoryList --> PoiSelected: 点击 POI
|
||||
SearchSelecting --> PoiSelected: 选择候选点
|
||||
PoiSelected --> RoutePointPicking: 设为起点/终点
|
||||
RoutePointPicking --> RoutePointPicking: 起终点不完整/提示
|
||||
RoutePointPicking --> RoutePreview: 起终点完整并规划
|
||||
RoutePreview --> Navigating: 开始/模拟导航
|
||||
Navigating --> Navigating: 步进/转向/楼层变化
|
||||
Navigating --> MapHome: 退出导览
|
||||
RoutePreview --> RoutePointPicking: 返回修改起终点
|
||||
RoutePointPicking --> MapHome: 取消/清除
|
||||
```
|
||||
|
||||
状态机说明:
|
||||
|
||||
- `MapHome` 是中心状态,不只是入口页;其它状态多数都能回到它。
|
||||
- `RoutePointPicking` 对起点 / 终点完整性有强校验,防止用户在条件不足时进入导航。
|
||||
- `RoutePreview` 与 `Navigating` 是两个不同状态:前者看方案,后者进入指令驱动。
|
||||
- `Navigating` 必须有退出路径,否则用户进入沉浸态后会失控。
|
||||
|
||||
## 6. 路线规划流程
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[进入路线规划] --> B{是否已有起点}
|
||||
B -- 否 --> C[提示选择起点并禁用主按钮]
|
||||
C --> D[搜索/地图点选/列表选择起点]
|
||||
B -- 是 --> E{是否已有终点}
|
||||
D --> E
|
||||
E -- 否 --> F[提示选择终点并禁用主按钮]
|
||||
F --> G[搜索/地图点选/列表选择终点]
|
||||
E -- 是 --> H[展示路线偏好]
|
||||
G --> H
|
||||
H --> I[请求路线规划]
|
||||
I --> J{是否有可用路线}
|
||||
J -- 否 --> K[展示无路线/能力不可用原因]
|
||||
J -- 是 --> L[展示推荐路线、距离、时间、跨层信息]
|
||||
L --> M[开始模拟/正式导航]
|
||||
M --> N[导航中指令、定位、楼层、退出]
|
||||
N --> O[结束或退出,清理导航态]
|
||||
```
|
||||
|
||||
对标流程里的路线偏好包含“推荐路线 / 不走楼梯 / 电梯”。这不只是三个按钮,而是路线规划输入条件的一部分:它们应改变路径权重、可通行边、垂直交通工具偏好,不能只改变文案。
|
||||
|
||||
## 7. 搜索 / 选点 / 楼层 / 导航中 / 结束逻辑
|
||||
|
||||
### 搜索逻辑
|
||||
|
||||
- 搜索框始终贴近地图主场景,搜索不是脱离地图的单独任务。
|
||||
- 输入时可出现键盘与候选列表;确认后应回填到起点或终点,而不是只跳详情。
|
||||
- 搜索结果应可被用于三类动作:查看位置、设为起点、设为终点。
|
||||
- 空结果使用轻量 Toast 或空态,不破坏当前选点任务。
|
||||
|
||||
### 选点逻辑
|
||||
|
||||
- 路线规划明确区分起点和终点。
|
||||
- 当前正在选起点还是终点,需要有持续提示。
|
||||
- 未选起点 / 终点时,模拟导航等主动作应禁用。
|
||||
- 选点后需要地图标记、文本条和底部确认态同步更新。
|
||||
|
||||
### 楼层逻辑
|
||||
|
||||
- 楼层既是浏览过滤条件,也是路线语义的一部分。
|
||||
- 分类 / POI 列表与楼层选择联动,用户可以按楼层缩小范围。
|
||||
- 跨层路线需要展示跨层提示,并在导航中支持楼层切换或自动跟随。
|
||||
- 电梯、扶梯、楼梯不只是设施 POI;在正式路线里应作为垂直连接器参与拓扑。
|
||||
|
||||
### 导航中逻辑
|
||||
|
||||
- 导航中要从“看路线”切换到“执行指令”:顶部当前动作、地图路线、当前位置、目的地、退出按钮是最小闭环。
|
||||
- 语音、低速、楼层、缩放等控制属于导航运行态控制,不应和路线方案态混淆。
|
||||
- 模拟导航可以作为无真实定位时的演示模式,但需要和正式导航文案区分。
|
||||
|
||||
### 结束导览逻辑
|
||||
|
||||
- 结束或退出要清理路线、当前位置模拟、转向指令和目的地卡片。
|
||||
- 退出后应回到地图主页或路线方案可编辑态,而不是落到空白或无法继续的状态。
|
||||
- 对“已到达”与“用户主动退出”应分别处理:前者可给到到达反馈,后者保持可重规划。
|
||||
|
||||
## 8. 本项目当前逻辑对照
|
||||
|
||||
| 模块 | 当前状态 | 源码证据 | 与对标逻辑的差距 |
|
||||
| --- | --- | --- | --- |
|
||||
| 导览主页地图工作台 | 部分实现 | `src/pages/index/index.vue` 已有 `is3DMode`、`guideOutdoorState`、`indoorView`、`activeGuideFloor`、`selectedGuidePoi` 等状态;`GuideMapShell` 统一承载馆内 / 馆外、搜索、楼层、工具事件 | 已具备地图主页骨架,但搜索 / 分类 / 选点 / 路线的“同一任务上下文”还不如对标视频连贯 |
|
||||
| “来馆”入口 | 已实现 | `src/pages/index/index.vue` 更多菜单标题已为“来馆”,并通过 `openOutdoorNavPanel()` 切到馆外 2D 地图 | 与对标里的“来馆/馆外参考”接近,继续保持与馆内导航解耦 |
|
||||
| 馆外导航 / 来馆 | 已实现 | `src/components/navigation/OutdoorNavigationPanel.vue` 支持 GPS、手动起点、地址搜索、出行方式、路线结果、开始导航 / 清除 | 与对标导览里的馆内路线逻辑是两条业务线,不能混成馆内导航能力 |
|
||||
| 馆内 3D 和楼层 | 部分实现 | `src/components/map/ThreeMap.vue` 和 `GuideMapShell` 已有馆内模型、楼层、POI 聚焦、路线预览渲染入口 | 具备位置预览和楼层浏览基础;正式跨层导航还缺经验证的拓扑与连接器 |
|
||||
| POI 选择与卡片 | 部分实现 | `src/pages/index/index.vue` 有 `selectedGuidePoi`、POI 卡片、设起点 / 终点相关处理 | 对标视频中选点和路线起终点绑定更强;本项目仍偏“点位预览 + 路线面板” |
|
||||
| 搜索 | 部分实现 | `src/pages/search/index.vue` 有搜索输入、筛选 chip、结果列表、点击详情、结果动作跳 `route/detail` | 已有搜索基础,但不是对标那种地图内分类面板 + 楼层 POI 列表 + 选起终点一体化流程 |
|
||||
| 路线规划面板 | 部分实现 | `src/components/navigation/RoutePlannerPanel.vue` 有起点、终点、交换、清除、收起、推荐路线 / 少走楼梯 / 电梯优先、主按钮 | 面板结构接近对标,但路线偏好大多禁用;主流程受路线数据门禁限制 |
|
||||
| 起终点搜索 / 选择 | 已实现基础 | `RoutePointPicker.vue` 被 `RoutePlannerPanel.vue` 使用,支持起点 / 终点 picker 与搜索 | 可继续吸收对标的“地图点选确认”和“当前选择角色持续提示” |
|
||||
| 路线可用性门禁 | 已实现且必须保留 | `src/domain/guideReadiness.ts` 中 `NAV_ROUTE_GRAPH_READY = false`,不可用文案为“当前暂不支持正式导航,可查看位置预览、路线示意和馆外参考” | 当前不能对外宣称正式馆内导航,这是正确边界 |
|
||||
| 真正路线规划 | 缺失 / 被门禁关闭 | `src/usecases/guideRouteUseCase.ts` 的 `planRoute()` 先读 readiness;未 ready 直接返回 error;`GuideRouteRepository` 也经过 `applyRouteReadinessGate` | 对标视频可进入路线方案和导航中,本项目当前只能做位置预览或能力不可用提示 |
|
||||
| 导航中 turn-by-turn | 缺失 | `src/pages/index/index.vue` 有 `isSimulatingRoute` 和模拟态 UI 变量,但由于 `routeReady=false` 通常无法获得真实 `activeRoutePreview` | 缺真实路线、实时 / 模拟位置步进、转向指令、到达判断、偏航处理 |
|
||||
| 路线偏好 | 缺失 / 占位 | `RoutePlannerPanel.vue` 中“少走楼梯”“电梯优先”均 `disabled: true`,提示待路线数据验证 | 需要真实 graph 边权、垂直连接器、无障碍属性后才可启用 |
|
||||
| 结束导览 | 部分实现 | `handleRouteBack()`、`handleRouteClear()`、`handleRouteSimulate()` 可切换 / 清理部分路线状态 | 对标中的“导航中退出 -> 回到地图 / 方案态”闭环可借鉴,但需先有稳定导航中状态 |
|
||||
|
||||
## 9. 已有能力、缺失能力与优先级
|
||||
|
||||
### 已有,可继续打磨
|
||||
|
||||
- 地图作为导览主页:本项目已通过 `GuideMapShell`、`ThreeMap`、`TencentMap` 分离馆内 / 馆外渲染。
|
||||
- POI / 楼层 / 位置预览:已有基础数据流和 UI 状态。
|
||||
- 起终点面板:已有起点、终点、交换、清除、picker 搜索等基础能力。
|
||||
- 路线能力门禁:当前 `NAV_ROUTE_GRAPH_READY=false`,避免误导用户,这是上线前必须保留的保护。
|
||||
- 来馆:馆外导航面板已存在,适合承接对标视频里的“来馆”任务。
|
||||
|
||||
### 部分已有,建议按 UX 闭环补齐
|
||||
|
||||
- 地图内分类列表:当前搜索页是独立页面样式,建议未来改为地图上下文内的分类 / 楼层 / POI 列表,不打断导览。
|
||||
- 点位到路线的动作:搜索结果、POI 卡片、地图点选应统一提供“查看位置 / 设为起点 / 设为终点”。
|
||||
- 路线方案态:可先在 route graph 未就绪时展示“位置关系 / 路线示意不可用原因”,路线就绪后再切换到推荐路线。
|
||||
- 导航退出闭环:现有清理函数可复用,但应明确区分取消规划、退出模拟、到达结束。
|
||||
|
||||
### 缺失,需数据和算法支撑
|
||||
|
||||
- 经验证的 `route_graph` / `nav_data` 加载、校验和冒烟测试。
|
||||
- 馆内路径规划算法或 SDK 路线规划结果适配。
|
||||
- 楼层连接器:楼梯、扶梯、电梯与图节点 / 边的关联。
|
||||
- 路线偏好:推荐、不走楼梯、电梯优先对应不同权重和约束。
|
||||
- 导航中 turn-by-turn:分步指令、当前位置更新、下一步提示、到达判断、偏航 / 重规划。
|
||||
- 正式导航和模拟导航的文案与状态区分。
|
||||
|
||||
## 10. 建议吸收的 UX 逻辑
|
||||
|
||||
P1:先补齐不依赖真实路线的闭环。
|
||||
|
||||
- 将搜索、分类、楼层、POI 列表尽量保持在导览地图上下文内。
|
||||
- 统一点位动作模型:`preview`、`setStart`、`setEnd`、`clear`。
|
||||
- 路线未就绪时,主按钮和状态文案只表达“查看位置 / 位置关系 / 能力不可用原因”,不出现正式导航承诺。
|
||||
- 空结果、未选起点、未选终点用即时反馈,不跳离当前任务。
|
||||
|
||||
P2:在 route graph 就绪后启用路线方案态。
|
||||
|
||||
- 接入真实 `route_graph`、`nav_data`、楼层连接器和 POI 到可行走节点映射。
|
||||
- 将推荐路线、不走楼梯、电梯优先从 UI 占位变成规划输入。
|
||||
- 路线方案卡展示距离、预计时间、跨层信息、关键连接器。
|
||||
|
||||
P3:再启用导航中状态。
|
||||
|
||||
- 明确模拟导航与正式导航两条状态。
|
||||
- 导航中提供当前指令、下一步、楼层跟随、缩放、语音开关、退出。
|
||||
- 结束导览后清理导航态并回到地图主页或路线方案态。
|
||||
|
||||
## 11. 风险边界
|
||||
|
||||
本项目当前不能按对标视频完整复刻“正式馆内导航”。原因不是 UI 缺按钮,而是路线能力被明确门禁:
|
||||
|
||||
- `src/domain/guideReadiness.ts` 将 `NAV_ROUTE_GRAPH_READY` 固定为 `false`。
|
||||
- `guideRouteUseCase.planRoute()` 在 readiness 未就绪时直接返回错误,不进入真实路线规划。
|
||||
- “少走楼梯 / 电梯优先”在路线面板中仍是禁用占位。
|
||||
|
||||
因此,对标视频中的路线方案、转向指令、模拟导航、到达结束等逻辑可以作为产品目标和状态机设计参考,但在本项目中必须等 `route_graph`、`nav_data`、楼层连接器和路线冒烟测试完成后才能启用。短期应继续使用“位置预览 / 查看位置关系 / 馆外参考 / 来馆”作为真实能力表述。
|
||||
|
||||
## 12. 结论
|
||||
|
||||
对标小程序的核心优势是把导览任务组织成一个连续地图工作流:找点、选点、看路线、开始导航、退出导览都在同一空间上下文中完成。本项目已经具备地图 shell、馆内 3D、楼层、POI、路线面板、来馆面板和路线能力门禁,基础方向正确。
|
||||
|
||||
当前最大差距在于真实馆内路线数据和导航运行态:对标视频已经展示路线方案与导航中指令,本项目仍应停留在位置预览和能力不可用提示。建议先吸收不依赖路线数据的 UX 闭环,再在数据验证完成后逐步开放路线方案和导航中状态。
|
||||
140
docs/Benchmark/home-redesign-options/README.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# 导览首页精简版 5 套方案
|
||||
|
||||
本目录提供 5 套移动端 H5 导览首页设计稿,画布比例为 390x844。设计目标是把首页收敛为三个核心模块:
|
||||
|
||||
- 三维组件:馆内 3D 或馆外地图主区域。
|
||||
- 讲解入口:进入展厅 / 展品讲解内容。
|
||||
- 来馆入口:进入到馆 / 馆外参考位置。
|
||||
|
||||
这些图片只表达首页布局、入口层级和交互逻辑,不承诺真实馆内导航、路线规划或到达判断能力。
|
||||
|
||||
## 输出文件
|
||||
|
||||
- `option-1.png`:地图画布 + 顶部双入口
|
||||
- `option-2.png`:沉浸三维 + 右侧任务轨
|
||||
- `option-3.png`:三维首页 + 底部任务面板
|
||||
- `option-4.png`:馆内三维 / 来馆并列预览
|
||||
- `option-5.png`:讲解优先浮层
|
||||
- `interaction-middle-map-operating.png`:从首页进入点位搜索前的三维地图操作态
|
||||
- `options-overview.png`:5 套方案总览,便于快速横向比较
|
||||
|
||||
## 生成说明
|
||||
|
||||
已按 `imagegen` skill 先读取项目材料和设计约束,并使用默认内置 `image_gen` 模式生成 5 张高保真 PNG。生成后的图片已从 `$CODEX_HOME/generated_images/...` 复制到本目录,文件名为 `option-1.png` 至 `option-5.png`。未修改 `src` 下业务代码。
|
||||
|
||||
## 现有首页功能点对照
|
||||
|
||||
从 `src/pages/index/index.vue` 和 `GuideMapShell.vue` 读取到的现有能力包括:
|
||||
|
||||
- `GuideMapShell` 承载馆内 3D、馆外地图、搜索、模式切换、楼层、缩放、更多入口、POI 点击等。
|
||||
- 首页当前有 `guide` / `explain` 顶部 tab。
|
||||
- `来馆` 当前在更多菜单和 `OutdoorNavigationPanel` 中承接。
|
||||
- POI 卡片包含查看位置、从这里出发、去这里、相关讲解。
|
||||
- 路线规划面板已有起终点、交换、路线预览、模拟导览等结构,但正式馆内路线能力仍受门禁约束。
|
||||
|
||||
本次 5 套方案的共同取舍:
|
||||
|
||||
- 搜索:不作为首页核心组件展示,除方案一 / 二保留极弱入口外,其余收纳或移除。
|
||||
- 楼层:只保留最小当前楼层提示或收纳,不展开完整楼层列表。
|
||||
- 缩放 / 更多 / 工具按钮:默认隐藏,收纳到地图菜单或地图手势中。
|
||||
- POI 卡片:不作为首页默认模块,只在用户点选地图后出现。
|
||||
- 路线规划:不放在首页主入口,不承诺真实导航能力。
|
||||
- 顶部 tab:弱化为直接的 `讲解` 入口,而不是占用首屏的复杂导航。
|
||||
|
||||
## 方案对比
|
||||
|
||||
### 方案一:地图画布 + 顶部双入口
|
||||
|
||||
- 三维组件:约占屏幕 75%,从标题下方延伸到底部主按钮上方。
|
||||
- 讲解入口:顶部右侧胶囊按钮。
|
||||
- 来馆入口:顶部右侧胶囊按钮,与讲解并列。
|
||||
- 次要功能:保留极简 `馆内3D / 馆外` 切换和当前楼层提示;搜索、缩放、更多、路线规划不展开。
|
||||
- 设计意图:最接近现有首页结构,改造成本较低,用户容易理解。
|
||||
- 优点:稳定、清晰、落地阻力小。
|
||||
- 缺点:仍然保留了一些地图工具感,不是最极简。
|
||||
|
||||
### 方案二:沉浸三维 + 右侧任务轨
|
||||
|
||||
- 三维组件:接近全屏,地图从顶部内容区一直延伸到底部。
|
||||
- 讲解入口:右侧悬浮任务轨中的上半按钮,同时顶部也有弱入口。
|
||||
- 来馆入口:右侧悬浮任务轨中的下半按钮,同时顶部也有弱入口。
|
||||
- 次要功能:只保留 `馆内3D / 馆外` 极简切换;搜索、楼层、缩放、更多收纳到地图菜单。
|
||||
- 设计意图:让首页更像一个沉浸式三维地图工具。
|
||||
- 优点:三维组件存在感最强。
|
||||
- 缺点:右侧任务轨需要验证是否遮挡地图主体。
|
||||
|
||||
### 方案三:三维首页 + 底部任务面板
|
||||
|
||||
- 三维组件:约占屏幕 60%,上半屏为地图主区域。
|
||||
- 讲解入口:底部任务面板中的小卡片。
|
||||
- 来馆入口:底部任务面板中的小卡片。
|
||||
- 次要功能:地图上只保留当前模式和楼层提示;搜索、完整楼层、更多、路线规划全部收纳。
|
||||
- 设计意图:把首页决策集中到底部,适合单手操作。
|
||||
- 优点:任务入口非常明确,适合普通用户。
|
||||
- 缺点:三维地图占比低于方案一 / 二。
|
||||
|
||||
### 方案四:馆内三维 / 来馆并列预览
|
||||
|
||||
- 三维组件:上半屏为馆内 3D 主区域,约占屏幕 45%。
|
||||
- 讲解入口:顶部文字入口 + 底部讲解卡片。
|
||||
- 来馆入口:下半屏独立来馆卡片,配馆外地图预览。
|
||||
- 次要功能:搜索、楼层、缩放、更多完全移除;只保留三维和来馆两个空间入口。
|
||||
- 设计意图:把“馆内”和“来馆”拆成两个明确任务区。
|
||||
- 优点:来馆入口最突出,适合到馆前用户。
|
||||
- 缺点:三维组件主导性弱一些。
|
||||
|
||||
### 方案五:讲解优先浮层
|
||||
|
||||
- 三维组件:作为全屏背景主视觉,承托首页空间感。
|
||||
- 讲解入口:顶部前置大卡片中的主按钮。
|
||||
- 来馆入口:顶部前置大卡片中的次按钮。
|
||||
- 次要功能:搜索、楼层、路线规划明确收纳,不在首页展开。
|
||||
- 设计意图:适合把首页定位为内容导览入口,而三维地图作为空间背景。
|
||||
- 优点:首页最简洁,讲解入口最强。
|
||||
- 缺点:如果产品希望三维地图可操作感更强,这套会偏内容入口。
|
||||
|
||||
## 推荐排序
|
||||
|
||||
1. 方案一:推荐作为第一落地方向。它保留三维地图主导地位,同时把 `讲解` 和 `来馆` 清晰前置,和现有组件结构最容易对接。
|
||||
2. 方案三:适合强调首页任务选择和单手操作,产品表达最稳。
|
||||
3. 方案二:视觉冲击和三维沉浸感最好,但需要进一步验证遮挡和触控区域。
|
||||
4. 方案四:适合来馆任务权重很高的版本,但首页会更像入口聚合页。
|
||||
5. 方案五:最极简,适合内容讲解优先策略;若导览首页必须突出地图操作,则优先级较低。
|
||||
|
||||
最终选择仍建议由产品确认首页主任务权重:如果“看地图”优先,选方案一或二;如果“选任务”优先,选方案三;如果“到馆”优先,选方案四;如果“听讲解”优先,选方案五。
|
||||
|
||||
## 首页到点位搜索的中间操作页
|
||||
|
||||
`interaction-middle-map-operating.png` 用于补全“首页沉浸态”和“点位搜索页”之间的交互断点。
|
||||
|
||||
### 页面定位
|
||||
|
||||
这个页面不是首页,也不是点位搜索页,而是用户点击首页 `开始浏览` / `进入三维` 后进入的三维地图操作态。它的作用是:
|
||||
|
||||
- 让三维地图从展示态进入可操作态。
|
||||
- 允许用户拖动、缩放、点选地图。
|
||||
- 通过底部 `查找点位` 按钮进入点位搜索页。
|
||||
- 通过 `设施` / `楼层` 进入轻量筛选,不在首页直接堆功能。
|
||||
|
||||
### 推荐交互链路
|
||||
|
||||
```text
|
||||
导览首页
|
||||
├─ 点击「讲解」→ 讲解内容入口
|
||||
├─ 点击「来馆」→ 来馆 / 馆外参考入口
|
||||
└─ 点击「开始浏览」或「进入三维」
|
||||
→ interaction-middle-map-operating.png(三维地图操作态)
|
||||
├─ 拖动 / 缩放地图 → 浏览空间
|
||||
├─ 点击地图点位 → 展示点位预览卡
|
||||
├─ 点击「查找点位」→ 点位搜索页
|
||||
├─ 点击「设施」→ 展开服务设施筛选
|
||||
└─ 点击「楼层」→ 展开楼层选择
|
||||
```
|
||||
|
||||
### 与点位搜索页的关系
|
||||
|
||||
点位搜索页承接的是中间页底部 `查找点位` 的结果。进入点位搜索后,用户可以搜索地点、点击服务台 / 电梯 / 扶梯 / 洗手间 / 母婴室 / 出入口等分类,或切换楼层查看点位列表。点击任一点位后,建议返回三维地图操作态,并在地图上聚焦该点位。
|
||||
|
||||
### 能力边界
|
||||
|
||||
中间页只表达“浏览地图、查看位置、查找点位”的能力,不表达正式路线规划或实时导航。点位卡建议使用 `查看详情`、`查看位置`、`相关讲解` 等文案,避免使用 `开始导航`。
|
||||
|
After Width: | Height: | Size: 2.0 MiB |
BIN
docs/Benchmark/home-redesign-options/option-1.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
40
docs/Benchmark/home-redesign-options/option-1.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.42" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E2ECF0"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.66" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DCE7EC"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#D3DEE4"/><stop offset="1" stop-color="#AEBEC8"/></linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#E8F4EB"/><stop offset="1" stop-color="#CDE8D7"/></linearGradient>
|
||||
<linearGradient id="outdoor" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F5F8F2"/><stop offset="1" stop-color="#E5EEE7"/></linearGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="60%" r="60%"><stop offset="0" stop-color="#2C854F" stop-opacity=".24"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#696962}.disabled{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;stroke:#E5E5E5;stroke-width:1}.glass{fill:#fff;fill-opacity:.84;stroke:#E5E5E5;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.66;stroke:#AEBEC8;stroke-width:.7}.garden{fill:url(#garden);stroke:#C7E1D0;stroke-width:1}.label{fill:#fff;stroke:#DEDEDE;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}.title{font-size:34px;font-weight:800}.h2{font-size:22px;font-weight:800}.h3{font-size:18px;font-weight:800}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/><text x="18" y="58" class="font black title">导览</text><text x="18" y="78" class="font disabled" font-size="11">三维地图工作台</text>
|
||||
<g filter="url(#soft)"><rect x="214" y="24" width="70" height="40" rx="20" fill="#FFFFFF" stroke="#E5E5E5"/><text x="249" y="50" text-anchor="middle" class="font green heavy" font-size="16">▶ 讲解</text></g><g filter="url(#soft)"><rect x="296" y="24" width="72" height="40" rx="20" fill="#FFFFFF" stroke="#E5E5E5"/><text x="332" y="50" text-anchor="middle" class="font green heavy" font-size="16">↗ 来馆</text></g>
|
||||
<clipPath id="c1"><rect x="14" y="96" width="362" height="636" rx="22"/></clipPath>
|
||||
<rect x="14" y="96" width="362" height="636" rx="22" fill="url(#mapBg)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c1)">
|
||||
<circle cx="296.36" cy="197.76" r="115.84" fill="#2C854F" opacity=".055"/><circle cx="79.16" cy="592.08" r="130.32" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 223.2 L426 140.52" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-16 235.92 L418 153.24" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<path d="M-26 642.96 L426 553.92" stroke="#BFD8E4" stroke-width="14" opacity=".32"/><path d="M-16 655.68 L418 566.64" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<g transform="translate(24.86 127.8) scale(0.92) rotate(-18 190 300)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".72"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".22" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M263.78 274.08000000000004 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M274.64 286.79999999999995 l-16 9 l18 3 l-8 13"/></g>
|
||||
<g filter="url(#soft)"><ellipse cx="252.92000000000002" cy="318.79999999999995" rx="30" ry="13" fill="url(#pinGlow)"/><path d="M252.92000000000002 286.79999999999995 C234.92000000000002 286.79999999999995 222.92000000000002 299.79999999999995 222.92000000000002 316.79999999999995 C222.92000000000002 340.79999999999995 252.92000000000002 361.79999999999995 252.92000000000002 361.79999999999995 C252.92000000000002 361.79999999999995 282.92 340.79999999999995 282.92 316.79999999999995 C282.92 299.79999999999995 270.92 286.79999999999995 252.92000000000002 286.79999999999995 Z" fill="#2C854F"/><circle cx="252.92000000000002" cy="315.79999999999995" r="9" fill="#fff"/></g>
|
||||
<g filter="url(#tiny)" class="font"><rect x="187.76" y="369.48" width="124" height="50" rx="12" class="label"/><text x="249.76" y="391.48" text-anchor="middle" class="black bold" font-size="14">恐龙化石展厅</text><text x="249.76" y="408.48" text-anchor="middle" class="black" font-size="12">1F-02</text><rect x="57.44" y="267.72" width="112" height="46" rx="11" class="label"/><text x="113.44" y="286.72" text-anchor="middle" class="black" font-size="12">地球演化厅</text><text x="113.44" y="302.72" text-anchor="middle" class="black" font-size="11">1F-03</text></g>
|
||||
</g>
|
||||
<g filter="url(#tiny)"><rect x="28" y="112" width="58" height="30" rx="15" fill="#000" stroke="#E5E5E5"/><text x="57" y="132" text-anchor="middle" class="font lime bold" font-size="12">馆内3D</text></g><g filter="url(#tiny)"><rect x="92" y="112" width="42" height="30" rx="15" fill="#fff" stroke="#E5E5E5"/><text x="113" y="132" text-anchor="middle" class="font muted bold" font-size="12">馆外</text></g>
|
||||
<g filter="url(#tiny)"><rect x="322" y="305" width="44" height="94" rx="14" class="glass"/><text x="344" y="336" text-anchor="middle" class="font text" font-size="14">2F</text><rect x="322" y="350" width="44" height="42" rx="9" fill="#000"/><text x="344" y="377" text-anchor="middle" class="font lime heavy" font-size="17">1F</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="762" width="342" height="40" rx="20" fill="#000000" stroke="#000000"/><text x="195" y="788" text-anchor="middle" class="font lime heavy" font-size="16">进入三维导览</text></g><rect x="142" y="826" width="106" height="4" rx="2" fill="#000" opacity=".12"/></svg>
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
BIN
docs/Benchmark/home-redesign-options/option-2.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
42
docs/Benchmark/home-redesign-options/option-2.svg
Normal file
@@ -0,0 +1,42 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.42" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E2ECF0"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.66" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DCE7EC"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#D3DEE4"/><stop offset="1" stop-color="#AEBEC8"/></linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#E8F4EB"/><stop offset="1" stop-color="#CDE8D7"/></linearGradient>
|
||||
<linearGradient id="outdoor" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F5F8F2"/><stop offset="1" stop-color="#E5EEE7"/></linearGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="60%" r="60%"><stop offset="0" stop-color="#2C854F" stop-opacity=".24"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#696962}.disabled{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;stroke:#E5E5E5;stroke-width:1}.glass{fill:#fff;fill-opacity:.84;stroke:#E5E5E5;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.66;stroke:#AEBEC8;stroke-width:.7}.garden{fill:url(#garden);stroke:#C7E1D0;stroke-width:1}.label{fill:#fff;stroke:#DEDEDE;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}.title{font-size:34px;font-weight:800}.h2{font-size:22px;font-weight:800}.h3{font-size:18px;font-weight:800}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/><clipPath id="c2"><rect x="0" y="84" width="390" height="760" rx="22"/></clipPath>
|
||||
<rect x="0" y="84" width="390" height="760" rx="22" fill="url(#mapBg)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c2)">
|
||||
<circle cx="304.2" cy="205.60000000000002" r="124.8" fill="#2C854F" opacity=".055"/><circle cx="70.2" cy="676.8000000000001" r="140.4" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-40 236 L440 137.2" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-30 251.2 L432 152.39999999999998" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<path d="M-40 737.6 L440 631.1999999999999" stroke="#BFD8E4" stroke-width="14" opacity=".32"/><path d="M-30 752.8 L432 646.4" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<g transform="translate(11.7 122) scale(1.02) rotate(-18 190 300)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".72"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".22" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M269.09999999999997 296.8 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M280.8 312 l-16 9 l18 3 l-8 13"/></g>
|
||||
<g filter="url(#soft)"><ellipse cx="257.40000000000003" cy="344" rx="30" ry="13" fill="url(#pinGlow)"/><path d="M257.40000000000003 312 C239.40000000000003 312 227.40000000000003 325 227.40000000000003 342 C227.40000000000003 366 257.40000000000003 387 257.40000000000003 387 C257.40000000000003 387 287.40000000000003 366 287.40000000000003 342 C287.40000000000003 325 275.40000000000003 312 257.40000000000003 312 Z" fill="#2C854F"/><circle cx="257.40000000000003" cy="341" r="9" fill="#fff"/></g>
|
||||
<g filter="url(#tiny)" class="font"><rect x="187.2" y="410.8" width="124" height="50" rx="12" class="label"/><text x="249.2" y="432.8" text-anchor="middle" class="black bold" font-size="14">恐龙化石展厅</text><text x="249.2" y="449.8" text-anchor="middle" class="black" font-size="12">1F-02</text><rect x="46.8" y="289.20000000000005" width="112" height="46" rx="11" class="label"/><text x="102.8" y="308.20000000000005" text-anchor="middle" class="black" font-size="12">地球演化厅</text><text x="102.8" y="324.20000000000005" text-anchor="middle" class="black" font-size="11">1F-03</text></g>
|
||||
</g>
|
||||
<rect x="0" y="84" width="390" height="760" fill="none" stroke="#E5E5E5"/>
|
||||
<text x="18" y="56" class="font black title">导览</text><text x="18" y="76" class="font disabled" font-size="11">沉浸三维组件</text>
|
||||
<g filter="url(#soft)"><rect x="238" y="22" width="132" height="44" rx="22" fill="#FFFFFF" stroke="#E5E5E5"/><text x="270" y="50" text-anchor="middle" class="font green heavy" font-size="15">讲解</text><line x1="304" y1="32" x2="304" y2="56" stroke="#E5E5E5"/><text x="337" y="50" text-anchor="middle" class="font green heavy" font-size="15">来馆</text></g>
|
||||
<g filter="url(#soft)"><rect x="306" y="164" width="58" height="150" rx="18" fill="#fff" stroke="#E5E5E5"/><text x="335" y="198" text-anchor="middle" class="font green heavy" font-size="20">▶</text><text x="335" y="217" text-anchor="middle" class="font black bold" font-size="11">讲解</text><line x1="318" y1="238" x2="352" y2="238" stroke="#E5E5E5"/><text x="335" y="270" text-anchor="middle" class="font green heavy" font-size="20">↗</text><text x="335" y="289" text-anchor="middle" class="font black bold" font-size="11">来馆</text></g>
|
||||
<g filter="url(#tiny)"><rect x="24" y="110" width="58" height="30" rx="15" fill="#000" stroke="#E5E5E5"/><text x="53" y="130" text-anchor="middle" class="font lime bold" font-size="12">馆内3D</text></g><g filter="url(#tiny)"><rect x="90" y="110" width="42" height="30" rx="15" fill="#fff" stroke="#E5E5E5"/><text x="111" y="130" text-anchor="middle" class="font muted bold" font-size="12">馆外</text></g>
|
||||
<g filter="url(#tiny)"><rect x="28" y="704" width="146" height="30" rx="15" class="glass"/><text x="101" y="724" text-anchor="middle" class="font muted" font-size="12">次要功能收纳至地图菜单</text></g>
|
||||
<g filter="url(#soft)"><rect x="24" y="768" width="342" height="40" rx="20" fill="#000000" stroke="#000000"/><text x="195" y="794" text-anchor="middle" class="font lime heavy" font-size="16">开始浏览</text></g><rect x="142" y="826" width="106" height="4" rx="2" fill="#000" opacity=".12"/></svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
BIN
docs/Benchmark/home-redesign-options/option-3.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
40
docs/Benchmark/home-redesign-options/option-3.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.42" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E2ECF0"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.66" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DCE7EC"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#D3DEE4"/><stop offset="1" stop-color="#AEBEC8"/></linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#E8F4EB"/><stop offset="1" stop-color="#CDE8D7"/></linearGradient>
|
||||
<linearGradient id="outdoor" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F5F8F2"/><stop offset="1" stop-color="#E5EEE7"/></linearGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="60%" r="60%"><stop offset="0" stop-color="#2C854F" stop-opacity=".24"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#696962}.disabled{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;stroke:#E5E5E5;stroke-width:1}.glass{fill:#fff;fill-opacity:.84;stroke:#E5E5E5;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.66;stroke:#AEBEC8;stroke-width:.7}.garden{fill:url(#garden);stroke:#C7E1D0;stroke-width:1}.label{fill:#fff;stroke:#DEDEDE;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}.title{font-size:34px;font-weight:800}.h2{font-size:22px;font-weight:800}.h3{font-size:18px;font-weight:800}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/><text x="18" y="58" class="font black title">导览</text><text x="18" y="78" class="font disabled" font-size="11">任务入口集中</text>
|
||||
<clipPath id="c3"><rect x="14" y="104" width="362" height="506" rx="22"/></clipPath>
|
||||
<rect x="14" y="104" width="362" height="506" rx="22" fill="url(#mapBg)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c3)">
|
||||
<circle cx="296.36" cy="184.96" r="115.84" fill="#2C854F" opacity=".055"/><circle cx="79.16" cy="498.68" r="130.32" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 205.2 L426 139.42000000000002" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-16 215.32 L418 149.54" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<path d="M-26 539.16 L426 468.32" stroke="#BFD8E4" stroke-width="14" opacity=".32"/><path d="M-16 549.28 L418 478.44" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<g transform="translate(24.86 129.3) scale(0.82) rotate(-18 190 300)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".72"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".22" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M263.78 245.68 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M274.64 255.79999999999998 l-16 9 l18 3 l-8 13"/></g>
|
||||
<g filter="url(#soft)"><ellipse cx="252.92000000000002" cy="287.79999999999995" rx="30" ry="13" fill="url(#pinGlow)"/><path d="M252.92000000000002 255.79999999999998 C234.92000000000002 255.79999999999998 222.92000000000002 268.79999999999995 222.92000000000002 285.79999999999995 C222.92000000000002 309.79999999999995 252.92000000000002 330.79999999999995 252.92000000000002 330.79999999999995 C252.92000000000002 330.79999999999995 282.92 309.79999999999995 282.92 285.79999999999995 C282.92 268.79999999999995 270.92 255.79999999999998 252.92000000000002 255.79999999999998 Z" fill="#2C854F"/><circle cx="252.92000000000002" cy="284.79999999999995" r="9" fill="#fff"/></g>
|
||||
<g filter="url(#tiny)" class="font"><rect x="187.76" y="321.58" width="124" height="50" rx="12" class="label"/><text x="249.76" y="343.58" text-anchor="middle" class="black bold" font-size="14">恐龙化石展厅</text><text x="249.76" y="360.58" text-anchor="middle" class="black" font-size="12">1F-02</text><rect x="57.44" y="240.62" width="112" height="46" rx="11" class="label"/><text x="113.44" y="259.62" text-anchor="middle" class="black" font-size="12">地球演化厅</text><text x="113.44" y="275.62" text-anchor="middle" class="black" font-size="11">1F-03</text></g>
|
||||
</g>
|
||||
<g filter="url(#tiny)"><rect x="28" y="120" width="42" height="30" rx="15" fill="#000" stroke="#E5E5E5"/><text x="49" y="140" text-anchor="middle" class="font lime bold" font-size="12">3D</text></g><g filter="url(#tiny)"><rect x="78" y="120" width="42" height="30" rx="15" fill="#fff" stroke="#E5E5E5"/><text x="99" y="140" text-anchor="middle" class="font muted bold" font-size="12">馆外</text></g>
|
||||
<g filter="url(#tiny)"><rect x="322" y="278" width="44" height="42" rx="12" class="glass"/><text x="344" y="305" text-anchor="middle" class="font text bold" font-size="14">1F</text></g>
|
||||
<g filter="url(#shadow)"><rect x="18" y="636" width="354" height="184" rx="24" fill="#FFFFFF" stroke="#E5E5E5"/><text x="42" y="674" class="font black heavy" font-size="22">你想先做什么?</text><text x="42" y="700" class="font muted" font-size="13">三维地图作为首页主体,入口集中到底部</text><rect x="42" y="726" width="140" height="54" rx="15" fill="#000"/><text x="112" y="760" text-anchor="middle" class="font lime heavy" font-size="18">浏览三维</text><rect x="198" y="726" width="68" height="54" rx="15" fill="#fff" stroke="#E5E5E5"/><text x="232" y="748" text-anchor="middle" class="font green heavy" font-size="17">▶</text><text x="232" y="765" text-anchor="middle" class="font black bold" font-size="10">讲解</text><rect x="280" y="726" width="68" height="54" rx="15" fill="#fff" stroke="#E5E5E5"/><text x="314" y="748" text-anchor="middle" class="font green heavy" font-size="18">↗</text><text x="314" y="765" text-anchor="middle" class="font black bold" font-size="10">来馆</text></g>
|
||||
<rect x="142" y="826" width="106" height="4" rx="2" fill="#000" opacity=".12"/></svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
BIN
docs/Benchmark/home-redesign-options/option-4.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
52
docs/Benchmark/home-redesign-options/option-4.svg
Normal file
@@ -0,0 +1,52 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.42" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E2ECF0"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.66" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DCE7EC"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#D3DEE4"/><stop offset="1" stop-color="#AEBEC8"/></linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#E8F4EB"/><stop offset="1" stop-color="#CDE8D7"/></linearGradient>
|
||||
<linearGradient id="outdoor" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F5F8F2"/><stop offset="1" stop-color="#E5EEE7"/></linearGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="60%" r="60%"><stop offset="0" stop-color="#2C854F" stop-opacity=".24"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#696962}.disabled{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;stroke:#E5E5E5;stroke-width:1}.glass{fill:#fff;fill-opacity:.84;stroke:#E5E5E5;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.66;stroke:#AEBEC8;stroke-width:.7}.garden{fill:url(#garden);stroke:#C7E1D0;stroke-width:1}.label{fill:#fff;stroke:#DEDEDE;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}.title{font-size:34px;font-weight:800}.h2{font-size:22px;font-weight:800}.h3{font-size:18px;font-weight:800}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/><text x="18" y="58" class="font black title">导览</text><text x="18" y="78" class="font disabled" font-size="11">馆内 / 来馆并列预览</text>
|
||||
<text x="292" y="51" class="font green heavy" font-size="16">讲解 ›</text>
|
||||
<clipPath id="c4a"><rect x="18" y="102" width="354" height="380" rx="22"/></clipPath>
|
||||
<rect x="18" y="102" width="354" height="380" rx="22" fill="url(#mapBg)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c4a)">
|
||||
<circle cx="294.12" cy="162.8" r="113.28" fill="#2C854F" opacity=".055"/><circle cx="81.72" cy="398.40000000000003" r="127.44" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-22 178 L422 128.6" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-12 185.6 L414 136.2" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<path d="M-22 428.8 L422 375.59999999999997" stroke="#BFD8E4" stroke-width="14" opacity=".32"/><path d="M-12 436.4 L414 383.2" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<g transform="translate(28.619999999999997 121) scale(0.68) rotate(-18 190 300)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".72"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".22" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M262.26 208.4 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M272.88 216 l-16 9 l18 3 l-8 13"/></g>
|
||||
<g filter="url(#soft)"><ellipse cx="251.64000000000001" cy="247.46666666666667" rx="29.5" ry="12.783333333333333" fill="url(#pinGlow)"/><path d="M251.64000000000001 216 C233.94000000000003 216 222.14000000000001 228.78333333333333 222.14000000000001 245.5 C222.14000000000001 269.1 251.64000000000001 289.75 251.64000000000001 289.75 C251.64000000000001 289.75 281.14 269.1 281.14 245.5 C281.14 228.78333333333333 269.34000000000003 216 251.64000000000001 216 Z" fill="#2C854F"/><circle cx="251.64000000000001" cy="244.51666666666665" r="8.85" fill="#fff"/></g>
|
||||
|
||||
</g>
|
||||
<g filter="url(#soft)"><rect x="42" y="390" width="154" height="58" rx="16" fill="#fff" stroke="#E5E5E5"/><text x="62" y="416" class="font black heavy" font-size="17">馆内三维</text><text x="62" y="436" class="font muted" font-size="12">馆内地图主区域</text><rect x="226" y="398" width="112" height="42" rx="12" fill="#000"/><text x="282" y="425" text-anchor="middle" class="font lime heavy" font-size="15">进入三维</text></g>
|
||||
<clipPath id="c4b"><rect x="18" y="514" width="168" height="190" rx="18"/></clipPath>
|
||||
<rect x="18" y="514" width="168" height="190" rx="18" fill="url(#outdoor)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c4b)">
|
||||
<path d="M-2 559.6 C54.96 548.2 78.47999999999999 578.6 226 563.4" fill="none" stroke="#D8DED8" stroke-width="30"/><path d="M-2 559.6 C54.96 548.2 78.47999999999999 578.6 226 563.4" fill="none" stroke="#FFFFFF" stroke-width="12"/>
|
||||
<path d="M34.8 724 C58.32 650.8 105.36 643.2 135.6 494" fill="none" stroke="#D8DED8" stroke-width="32"/><path d="M34.8 724 C58.32 650.8 105.36 643.2 135.6 494" fill="none" stroke="#fff" stroke-width="12"/>
|
||||
<rect x="51.6" y="571" width="77.28" height="57" rx="10" fill="#FFFFFF" stroke="#D3DCD5" transform="rotate(-10 90.24 599.5)"/>
|
||||
<rect x="63.36" y="582.4" width="50.4" height="30.400000000000002" rx="6" fill="#E8F4EB" stroke="#C7E1D0" transform="rotate(-10 88.56 597.6)"/>
|
||||
<circle cx="60" cy="555.8" r="18" fill="#CFE3D5"/><circle cx="149.04" cy="647" r="24" fill="#DCEDE2"/><circle cx="41.52" cy="650.8" r="30" fill="#DCEDE2"/>
|
||||
<g filter="url(#soft)"><ellipse cx="115.44" cy="620.04" rx="24.599999999999998" ry="10.66" fill="url(#pinGlow)"/><path d="M115.44 593.8 C100.67999999999999 593.8 90.84 604.4599999999999 90.84 618.4 C90.84 638.0799999999999 115.44 655.3 115.44 655.3 C115.44 655.3 140.04 638.0799999999999 140.04 618.4 C140.04 604.4599999999999 130.2 593.8 115.44 593.8 Z" fill="#2C854F"/><circle cx="115.44" cy="617.5799999999999" r="7.38" fill="#fff"/></g>
|
||||
<g filter="url(#tiny)"><rect x="96.96" y="628" width="126" height="44" rx="12" class="label"/><text x="159.95999999999998" y="647" text-anchor="middle" class="font black bold" font-size="13">博物馆主入口</text><text x="159.95999999999998" y="662" text-anchor="middle" class="font muted" font-size="11">馆外参考位置</text></g>
|
||||
</g>
|
||||
<g filter="url(#shadow)"><rect x="204" y="514" width="168" height="190" rx="18" fill="#fff" stroke="#E5E5E5"/><text x="226" y="552" class="font black heavy" font-size="22">来馆</text><text x="226" y="579" class="font muted" font-size="13">查看到馆入口与馆外参考位置</text><rect x="226" y="634" width="124" height="42" rx="12" fill="#000"/><text x="288" y="661" text-anchor="middle" class="font lime heavy" font-size="15">打开来馆</text></g>
|
||||
<g filter="url(#soft)"><rect x="18" y="728" width="354" height="76" rx="18" fill="#fff" stroke="#E5E5E5"/><text x="42" y="758" class="font green heavy" font-size="18">▶ 讲解</text><text x="42" y="780" class="font muted" font-size="12">从展厅内容进入音频讲解</text><text x="328" y="770" text-anchor="middle" class="font green heavy" font-size="24">›</text></g>
|
||||
<rect x="142" y="826" width="106" height="4" rx="2" fill="#000" opacity=".12"/></svg>
|
||||
|
After Width: | Height: | Size: 9.5 KiB |
BIN
docs/Benchmark/home-redesign-options/option-5.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
41
docs/Benchmark/home-redesign-options/option-5.svg
Normal file
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="390" height="844" viewBox="0 0 390 844"><defs>
|
||||
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#FCFDFD"/><stop offset="1" stop-color="#F4F6F7"/></linearGradient>
|
||||
<linearGradient id="mapBg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.42" stop-color="#F1F6F8"/><stop offset="1" stop-color="#E2ECF0"/></linearGradient>
|
||||
<linearGradient id="roof" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#FFFFFF"/><stop offset="0.66" stop-color="#EFF4F6"/><stop offset="1" stop-color="#DCE7EC"/></linearGradient>
|
||||
<linearGradient id="wall" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#D3DEE4"/><stop offset="1" stop-color="#AEBEC8"/></linearGradient>
|
||||
<linearGradient id="garden" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#E8F4EB"/><stop offset="1" stop-color="#CDE8D7"/></linearGradient>
|
||||
<linearGradient id="outdoor" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F5F8F2"/><stop offset="1" stop-color="#E5EEE7"/></linearGradient>
|
||||
<filter id="shadow" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="10" stdDeviation="10" flood-color="#0B1820" flood-opacity=".13"/></filter>
|
||||
<filter id="soft" x="-25%" y="-25%" width="160%" height="170%"><feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#0B1820" flood-opacity=".12"/></filter>
|
||||
<filter id="tiny" x="-30%" y="-30%" width="170%" height="180%"><feDropShadow dx="0" dy="3" stdDeviation="3" flood-color="#0B1820" flood-opacity=".11"/></filter>
|
||||
<radialGradient id="pinGlow" cx="50%" cy="60%" r="60%"><stop offset="0" stop-color="#2C854F" stop-opacity=".24"/><stop offset="1" stop-color="#2C854F" stop-opacity="0"/></radialGradient>
|
||||
<style>
|
||||
.font{font-family:'Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif}.black{fill:#000}.text{fill:#3F3F3F}.muted{fill:#696962}.disabled{fill:#ADB0B4}.green{fill:#2C854F}.lime{fill:#E0DF00}.bold{font-weight:700}.heavy{font-weight:800}.panel{fill:#fff;stroke:#E5E5E5;stroke-width:1}.glass{fill:#fff;fill-opacity:.84;stroke:#E5E5E5;stroke-width:1}.roof{fill:url(#roof);stroke:#D3DEE4;stroke-width:1.2}.wall{fill:url(#wall);opacity:.66;stroke:#AEBEC8;stroke-width:.7}.garden{fill:url(#garden);stroke:#C7E1D0;stroke-width:1}.label{fill:#fff;stroke:#DEDEDE;stroke-width:1}.mini{font-size:10px}.small{font-size:12px}.body{font-size:14px}.title{font-size:34px;font-weight:800}.h2{font-size:22px;font-weight:800}.h3{font-size:18px;font-weight:800}
|
||||
</style>
|
||||
</defs><rect width="390" height="844" fill="url(#bg)"/><clipPath id="c5"><rect x="14" y="92" width="362" height="632" rx="22"/></clipPath>
|
||||
<rect x="14" y="92" width="362" height="632" rx="22" fill="url(#mapBg)" stroke="#E5E5E5" filter="url(#shadow)"/>
|
||||
<g clip-path="url(#c5)">
|
||||
<circle cx="296.36" cy="193.12" r="115.84" fill="#2C854F" opacity=".055"/><circle cx="79.16" cy="584.96" r="130.32" fill="#1B6EC0" opacity=".045"/>
|
||||
<path d="M-26 218.4 L426 136.24" stroke="#BFD8E4" stroke-width="14" opacity=".34"/><path d="M-16 231.04 L418 148.88" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<path d="M-26 635.52 L426 547.04" stroke="#BFD8E4" stroke-width="14" opacity=".32"/><path d="M-16 648.16 L418 559.6800000000001" stroke="#fff" stroke-width="6" opacity=".72"/>
|
||||
<g transform="translate(24.86 123.6) scale(0.95) rotate(-18 190 300)" filter="url(#soft)">
|
||||
<rect x="126" y="62" width="184" height="82" class="wall" transform="translate(10 14)"/><rect x="126" y="62" width="184" height="82" class="roof"/><rect x="151" y="80" width="128" height="50" class="garden"/>
|
||||
<rect x="48" y="156" width="202" height="112" class="wall" transform="translate(10 14)"/><rect x="48" y="156" width="202" height="112" class="roof"/><rect x="73" y="181" width="148" height="62" fill="#FAFCFD" stroke="#E2E9ED"/>
|
||||
<rect x="266" y="166" width="166" height="102" class="wall" transform="translate(10 14)"/><rect x="266" y="166" width="166" height="102" class="roof"/><rect x="292" y="186" width="112" height="62" class="garden"/>
|
||||
<path d="M181 244 Q228 184 276 244 L276 426 L181 426 Z" fill="#F8FBFC" stroke="#CBD7DE" stroke-width="1.3"/><path d="M200 266 Q228 230 255 266 L255 402 L200 402 Z" fill="#EDF4F7" stroke="#D5E0E6"/>
|
||||
<rect x="132" y="306" width="154" height="126" class="wall" transform="translate(10 14)"/><rect x="132" y="306" width="154" height="126" class="roof"/><rect x="158" y="330" width="104" height="78" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="296" y="330" width="172" height="112" class="wall" transform="translate(10 14)"/><rect x="296" y="330" width="172" height="112" class="roof"/><rect x="322" y="352" width="116" height="68" class="garden"/>
|
||||
<rect x="42" y="434" width="196" height="104" class="wall" transform="translate(10 14)"/><rect x="42" y="434" width="196" height="104" class="roof"/><rect x="66" y="456" width="148" height="56" fill="#fff" stroke="#E2E9ED"/>
|
||||
<rect x="178" y="448" width="54" height="220" fill="#FFFFFF" stroke="#D4DEE4"/><rect x="242" y="444" width="40" height="220" fill="#FFFFFF" stroke="#D4DEE4"/>
|
||||
<g stroke="#C8D5DD" stroke-width="1" opacity=".72"><path d="M190 478 h28 M190 512 h28 M190 546 h28 M190 580 h28 M254 478 h18 M254 512 h18 M254 546 h18 M254 580 h18"/></g>
|
||||
</g>
|
||||
<g opacity=".22" fill="none" stroke="#56636B" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M263.78 268.96000000000004 c18 -12 38 -10 48 2 c-14 -3 -28 -1 -41 7"/><path d="M274.64 281.6 l-16 9 l18 3 l-8 13"/></g>
|
||||
<g filter="url(#soft)"><ellipse cx="252.92000000000002" cy="313.6" rx="30" ry="13" fill="url(#pinGlow)"/><path d="M252.92000000000002 281.6 C234.92000000000002 281.6 222.92000000000002 294.6 222.92000000000002 311.6 C222.92000000000002 335.6 252.92000000000002 356.6 252.92000000000002 356.6 C252.92000000000002 356.6 282.92 335.6 282.92 311.6 C282.92 294.6 270.92 281.6 252.92000000000002 281.6 Z" fill="#2C854F"/><circle cx="252.92000000000002" cy="310.6" r="9" fill="#fff"/></g>
|
||||
|
||||
</g>
|
||||
<rect x="14" y="92" width="362" height="632" rx="22" fill="#000" opacity=".08"/>
|
||||
<text x="18" y="58" class="font black title">导览</text><text x="18" y="78" class="font disabled" font-size="11">讲解优先入口</text>
|
||||
<g filter="url(#shadow)"><rect x="28" y="112" width="334" height="134" rx="22" fill="#FFFFFF" stroke="#E5E5E5"/><text x="52" y="152" class="font black heavy" font-size="23">先听讲解,或直接看地图</text><text x="52" y="180" class="font muted" font-size="13">首页只保留讲解、来馆与三维组件</text><rect x="52" y="200" width="132" height="38" rx="12" fill="#000"/><text x="118" y="225" text-anchor="middle" class="font lime heavy" font-size="16">进入讲解</text><rect x="198" y="200" width="124" height="38" rx="12" fill="#fff" stroke="#000"/><text x="260" y="225" text-anchor="middle" class="font black heavy" font-size="16">查看来馆</text></g>
|
||||
<g filter="url(#soft)"><rect x="42" y="582" width="306" height="76" rx="18" fill="#fff" stroke="#E5E5E5"/><text x="66" y="614" class="font black heavy" font-size="18">三维地图组件</text><text x="66" y="637" class="font muted" font-size="12">轻触地图查看馆内 / 馆外空间</text><text x="318" y="627" text-anchor="middle" class="font green heavy" font-size="28">›</text></g>
|
||||
<g filter="url(#tiny)"><rect x="28" y="738" width="334" height="46" rx="15" fill="#fff" fill-opacity=".9" stroke="#E5E5E5"/><text x="195" y="767" text-anchor="middle" class="font muted" font-size="12">搜索、楼层、路线规划暂收纳,不在首页展开</text></g>
|
||||
<rect x="142" y="826" width="106" height="4" rx="2" fill="#000" opacity=".12"/></svg>
|
||||
|
After Width: | Height: | Size: 7.6 KiB |
BIN
docs/Benchmark/home-redesign-options/options-overview.png
Normal file
|
After Width: | Height: | Size: 1021 KiB |