DOCS

高级用法

高级嵌入技巧、性能提示和集成模式。

组件属性

<tickadoo-map> 网页组件接受以下属性:

属性类型默认值说明
map-idstring您的地图 ID(必填)
localestring"en"界面语言(endeesfritptjazhcs
themestring"system"颜色主题:lightdarksystem
mobile-list-variantstring"carousel"移动端列表样式:carouseldrawer
enable-routingbooleanfalse显示步行/骑行/驾车路线导航
centerstring初始地图中心点,格式为 "lng,lat"(例如 "14.42,50.08"
zoomnumber10初始缩放级别(1–20)
booking-modestring"calendar"预订流程类型
use-category-colorsbooleanfalse使用分类特定的标记颜色

懒加载

如果地图不是立即可见的(例如在首屏下方或标签页中),可以延迟加载以提升页面性能:

Lazy loading
<tickadoo-map map-id="YOUR_MAP_ID" style="height: 500px" loading="lazy">
</tickadoo-map>

使用 loading="lazy" 后,地图仅在元素进入视口时才初始化。

响应式设计

小组件默认支持响应式,以下是常见布局的模式:

全宽区域

Full-width section
<section style="width: 100%; height: 70vh; min-height: 400px">
  <tickadoo-map map-id="YOUR_MAP_ID" style="width: 100%; height: 100%">
  </tickadoo-map>
</section>

侧边栏布局

Sidebar layout
<div style="display: flex; gap: 1rem; height: 600px">
  <div style="flex: 1">
    <!-- Your content -->
  </div>
  <tickadoo-map map-id="YOUR_MAP_ID" style="flex: 1">
  </tickadoo-map>
</div>

内容安全策略 (CSP)

如果您的网站使用内容安全策略,需要允许以下域名:

指令域名用途
script-srcb2b.tickadoo.com小组件脚本
connect-srcapi.tickadoo.comAPI 请求
connect-srcpmtiles.tickadoo.com地图瓦片数据
img-src*.tickadoo.com图片和图标
style-src'unsafe-inline'小组件样式
CSP header example
Content-Security-Policy:
  script-src 'self' b2b.tickadoo.com;
  connect-src 'self' api.tickadoo.com pmtiles.tickadoo.com;
  img-src 'self' *.tickadoo.com;
  style-src 'self' 'unsafe-inline';
性能注意事项

小组件脚本压缩后约 315KB(包括地图渲染器)。它会在用户平移和缩放时按需加载地图瓦片。为获得最佳性能:

  • 在 script 标签上使用 defer 以避免阻塞页面渲染
  • 如果小组件在首屏下方,在 Web Component 上使用 loading="lazy"
  • 小组件会自动处理浏览器中的瓦片缓存
单页应用 (SPA)

如果您的网站是 SPA(React、Vue、Angular 等),请使用 Web Component 方式。<tickadoo-map> 元素可以与任何框架的 DOM 渲染配合使用。

对于 React:

React usage
function MapSection({ mapId }: { mapId: string }) {
  return (
    <div style={{ height: "500px" }}>
      <tickadoo-map map-id={mapId} />
    </div>
  );
}

确保脚本只加载一次,例如在 index.html 中或通过顶层组件的 useEffect 加载。

Tip

官方 React 包(@tickadoo/map-react)现已提供一流的集成支持。请通过 support@tickadoo.com 联系我们获取访问权限。Web Component 也可以作为 ESM 模块用于其他框架。