海图展示:全球电子海图瓦片渲染,支持缩放、拖动、平移;
多图源切换:海图(MT_SEA)、谷歌地图(MT_GOOGLE)、卫星影像(MT_SATELLITE)一键切换;
船位与轨迹:区域船展示、船队船展示、单船定位、轨迹查询与回放(业务服务类接口,见后续文档);
气象与图层:专业气象、自定义瓦片图层、光栅图叠加;
基础工具:测距、比例尺、鼠标经纬度拾取、鹰眼(小地图)、点/线/面标注绘制等。
new ShipxyAPI.Map("map", {ak: "您的密钥"}):这是平台的入口函数。第一个参数是地图容器的 id 字符串(对应 <div id="map">);第二个参数 options 是配置对象,其中 ak 为授权码,必填,必须与 script 地址里 k 参数使用同一个密钥。options 还有很多可选配置(中心点、缩放级别、各类控件等),详见《02-地图引擎基础:Leaflet控制与绘制》。
返回值 _map 是一个 Leaflet 的 L.Map 实例,因此可以直接调用 Leaflet 原生方法(如 setView、fitBounds、on 等)以及平台扩展方法。
_map.fitWorld():把地图视野调整为"全球视野",即缩放和平移到恰好能完整显示世界地图的状态。如果不调用,也可以通过 options 中的 centerPoint 和 zoom 指定初始视野。
1.
容器必须有确定的宽度和高度。Leaflet 在初始化时会读取容器的实际像素尺寸,如果 <div> 没有设置宽高(高度默认为 0),地图会渲染失败或一片空白。推荐使用上文 .my-map 的写法:position: absolute; width: 100%; height: 100%;,让地图铺满浏览器窗口。若嵌入在页面局部,请写成固定高度,如 width: 100%; height: 500px;。
2.
容器在初始化时必须已经存在于 DOM 中。请把初始化脚本放在容器 </div> 之后(如示例 所示),或放在 window.onload 中执行。
3.
声明 UTF-8 字符集:在 <head> 中加入 <meta charset="UTF-8">,避免页面标题、Popup 中的中文出现乱码。
4.
密钥要同时填两处:script 地址的 k 参数和 options 的 ak 都要替换为您的密钥。
5.
容器建议设置底色:background-color: #A3CCFF 是海图海洋区域的底色,瓦片加载间隙不会出现突兀的白色。
6.
自定义按钮若悬浮在地图上,需设置 z-index(示例中用 888)使其位于地图图层之上。
1.
打开浏览器开发者工具(F12),看 Console 是否报错 ShipxyAPI is not defined——若是,说明 API 主文件没加载成功,检查第二个 <script> 的地址和 k 参数;
2.
检查地图容器 <div> 是否设置了高度。容器高度为 0 是最常见的原因,请在开发者工具中查看该 div 的实际尺寸;
3.
检查代码中 您的密钥 是否已替换为真实 Key,两处(script 的 k 参数、options 的 ak)都要替换;
4.
检查网络:开发者工具 Network 面板中,看 api.shipxy.com 的请求是否成功(状态码 200)。
平台为每种内置图源配置了 errorTileUrl(瓦片加载失败时的占位图),出现占位图说明对应瓦片请求失败;
先 检查本机网络是否能正常访问瓦片服务器域名(如 m12.shipxy.com、mt2.google.cn 等);
若当前缩放级别超出了图源的数据范围(例如卫星图在小比例尺级别无数据),瓦片也会缺失,可调整 minZoom/maxZoom 限制缩放范围;
若大面积瓦片失败且 Console 有 403/鉴权相关报错,通常是密钥问题,按 Q2 排查。