iFrame API
在你自己的网站上将你的某个项目显示为实时地图,并采用适合你网站的单位、地图样式和主题。
iFrame API 可以把项目的地图放到你自己的网页上。访客无需账户,也无需离开你的网站,就能看到带有你测量结果的卫星地图,并可以在其中移动。你来选择项目、单位、地图样式和颜色主题。
开始之前#
- 一个正式密钥,且具有 嵌入的地图 权限。参见 API 密钥。
- 访客可以查看的项目:你自己的或其他账户的项目,共享为 仅查看 或 公开。私有 项目只有在属于其他账户且其所有者已授权你时才会显示(参见客户的私有项目);你自己的私有项目永远不会显示。参见哪些项目可以嵌入。
- 可选:为密钥设置网站限制,这样嵌入只能在你自己的网站上使用。参见 API 密钥。
生成嵌入代码#
开发者 > 嵌入地图 会用你的正式密钥为你生成代码:选择项目,选择主题、单位、地图类型和尺寸,查看 实时预览,然后复制 嵌入代码。如果项目是私有的,该部分会提示这一点,并提供 设为仅查看。每一步的说明参见获取嵌入代码。
代码中带有你的密钥,所以在你更换密钥之前它一直有效。当密钥的权限超出 嵌入的地图 时,该部分会提醒你,因为任何人都可以在你页面的源代码中读到它;当密钥没有网站限制时也会提醒。只有 实时预览 使用短期令牌。参见密钥还是令牌。
嵌入地址#
嵌入是一个 <iframe>,其地址以 https://app.measuremaponline.com/iframe_api 开头,后面跟着下列参数:
| 参数 | 是否必需 | 取值 |
|---|---|---|
pid |
必需 | 项目的 ID:即项目在应用中的地址里 /p/ 之后的部分。项目所有者可以在项目概览的末尾复制它;在嵌入的地图中点击项目名称也会复制它。 |
key |
key 或 token |
你的 API 密钥。 |
token |
key 或 token |
来自你的服务器的令牌(见下文)。 |
ms |
可选 | 单位:metric(公制)或 imperial(英制)。不设置时,美国的访客看到英制单位,其他所有人看到公制。 |
maptype |
可选 | satellite(默认)、map、hybrid 或 terrain。 |
theme |
可选 | auto(默认:跟随访客自己的系统设置)、light 或 dark。 |
最简示例#
<iframe src="https://app.measuremaponline.com/iframe_api?pid=YOUR_PROJECT_ID&key=YOUR_API_KEY&maptype=satellite&theme=auto"
title="YOUR_PROJECT_NAME" width="500" height="500" style="border:0" allow="fullscreen"></iframe>
请替换 YOUR_PROJECT_ID、YOUR_API_KEY 和 YOUR_PROJECT_NAME(屏幕阅读器会朗读 title),并按你的页面设置合适的宽度和高度。
密钥还是令牌#
使用 key,就像 嵌入地图 部分给你的代码那样,嵌入会在密钥有效期间持续工作,范围是其限制所允许的网站。此时你的密钥在页面源代码中可见,所以:
- 请使用只具有 嵌入的地图 权限的密钥;
- 把它限制在你自己的网站;
- 更换密钥时,请在旧密钥继续有效的 24 小时内更新你的页面(在密钥有权限设置之前创建的密钥,则沿用你被告知的那个日期)。
使用 token,密钥留在你的服务器上。这适合由你自己的服务器在每次访问时写入页面的嵌入:在显示页面之前,服务器向 REST API 请求一个令牌,并把它放进 iframe 的地址中:
POST https://api.measuremaponline.com/api/v2/auth/iframe/token,在Authorization标头中带上你的密钥,会返回一个有效期为 60 分钟的token;POST https://api.measuremaponline.com/api/v2/auth/token作用相同,并接受以秒为单位的duration,最长 24 小时。其响应会说明令牌何时过期。
你的账户每小时最多可以获取 600 个令牌。请使用正式密钥:嵌入只显示正式项目,所以用沙盒密钥生成的令牌打不开地图。参见 API 参考。
访客可以做什么#
访客可以平移和缩放地图、查看你的图形的测量结果,并阅读项目的评论。当项目允许所有人评论时,他们可以添加评论;点击项目名称会复制它的 ID。除此之外他们不能更改任何内容:无论项目的访问级别如何,嵌入内部的编辑功能都是关闭的。唯一的例外是 Open Guest 套餐中的 Open Guest 项目,访客可以在其中自己进行测量。
地图没有出现时#
大多数情况下,地图会显示一条说明原因的消息:参见当地图显示消息时。请依次检查:
- **地址中的
token已过期。**除非你的服务器要求更长时间,令牌的有效期为 60 分钟。请从使用你密钥的 嵌入地图 重新复制代码,或让你的服务器为每次访问获取新的令牌(参见上文)。 - **项目是私有的。**如果是你自己的项目,请将其设为 仅查看 或 公开,或在 嵌入地图 中按 设为仅查看。如果是客户的项目,他们可以在地图上授权你,或者你可以在私有项目中向他们提出请求。
- 项目所属的套餐已结束:即其所有者的套餐,对于组织的项目则是组织的套餐。套餐续订后项目会重新显示。
- **该网站不被允许。**如果密钥设有网站限制,显示嵌入的页面必须位于其中某个网站上。有些浏览器和网站会隐藏嵌入所在的页面;设置了限制时,这样的嵌入会被拒绝。
- **密钥已被更换。**旧密钥会在创建新密钥 24 小时后失效,如果被吊销则立即失效。
- **该密钥是沙盒密钥。**嵌入只适用于正式密钥和正式项目。
- 订阅未生效,或 API 访问已被暂停:API 密钥 部分会说明这一点。
仍需要帮助?
给我们的支持团队写信,告诉我们你想做什么。附上截图会更有帮助。