【问题标题】:Apple MapKit JS (web) - Max Camera ZoomApple MapKit JS (web) - 最大相机缩放
【发布时间】:2021-10-20 04:47:19
【问题描述】:

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

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

我尝试在地图上设置cameraZoomRangecameraDistance 属性,但没有成功。这些值以米为单位(根据文档),但没有提及支持的最大值。有谁知道这个问题有没有解决办法?

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

【问题讨论】:

    标签: javascript mapkit mapkit-js


    【解决方案1】:

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

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

    2. 您可以使用 Handling Map Events 上的 MapKit JS 文档将经验相机距离值打印到 Javascript 控制台。

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

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

    估计缩放级别 = 25 - Floor(log2(cameraDistance))

    cameraDistance in meters
    Centered around Australia
    Estimated Zoom
    25 - Floor(log2(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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多