1

Apple 的MapKit JS(用于网络)处于测试阶段。

我正在尝试缩小相机,以便无需滚动或缩放即可看到整个世界,但最大缩放级别似乎有上限。

我尝试在地图上设置cameraZoomRangecameraDistance属性,但没有运气。这些值以米为单位(根据文档),但没有提及支持的最大值。有谁知道这是否有解决方案?

map.cameraZoomRange = new mapkit.CameraZoomRange(1000000000000, 1000000000000)
// or
map.cameraDistance = 1000000000000

显示最大缩放级别的示例实现。

4

1 回答 1

0

这里发生了几件事:MapKit 提供的图块大小 + 地图大小,以及未发布的最大相机距离(如您所述)。我建议添加额外的日志记录以查找为您的地图计算的相机距离(因为它与您的中心坐标所在的位置有关)。

  1. MapKit JS 提供 512x512 的图块(用于 Retina/hDPI 设备),因此为特定缩放提供的图块数量取决于地图的像素尺寸<div>和设备的功能。通过测试,MapKit JS 似乎不提供低于缩放级别 1 的图块。您可以通过检查通过Inspect Element > Network > Images提供的图像来发现这一点。

  2. 您可以使用有关处理地图事件的 MapKit JS 文档将经验相机距离值打印到 Javascript 控制台。

map.addEventListener("region-change-end", function(event)    {
  console.log("cameraDistance = " +
    mapkit.maps[0].cameraDistance.toFixed(3)
  );
});

#map以新南威尔士州悉尼为中心的 600x600 像素的示例数据。通过经验测试,我估计了相机距离和缩放级别之间的关系,你可以在 Mapbox 或 Leaflet SDK for JavaScript 中找到。

估计缩放级别 = 25 - 楼层(log 2 ( cameraDistance))

cameraDistance以米为单位
以澳大利亚为中心
估计缩放
25 - 楼层(log 2 ( cameraDistance))
18,817,301.985 1
1,176,081.374 5
36,752.543 10
1,148.517 15
35.891 20
4.486 23

缩放 = 1

于 2021-10-19T20:47:19.593 回答