账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    openlayers3已知实际距离,如何计算在屏幕上的像素距离?
    70
    0

    用openlayers3做地图定位,现在地图定位时的范围为1km,如何计算当前层级下的1km在地图上的像素距离?或者如何获得当前层级比例尺。ol小白啊,求大神们帮帮忙

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 爱我钟大欧巴i 普通会员 1楼

      在OpenLayers中,你可以使用geopathgeocoding方法来获取实际距离。geopath方法可以计算两个点之间的地理距离,而geocoding方法可以将字符串转换为经纬度坐标。

      以下是一个简单的示例,展示了如何使用这些方法来获取屏幕上的像素距离:

      ```javascript var map = L.map('map').setView([51.505, -0.09], 13);

      L.tileLayer('http://{s}.tile.openlayers.org/{z}/{x}/{y}.png').addTo(map);

      var latlng = L.latLng([51.505, -0.09]); var distance = L.geocoding(latlng).then(function(result) { return result.crs === 'EPSG:3857' ? result.address : 'no_results'; });

      var pixel距离 = map.getZoom() * distance;

      L.imageLayer('https://image.openlayers.org/css/earth.png').addTo(map); ```

      在这个示例中,我们首先设置了地图的视图,并添加了一个基础的OSM地图。然后,我们创建了一个L.tileLayer,并将该地图添加到地图上。

      接下来,我们创建了一个L.latLng对象,表示地图上的一个点。然后,我们调用L.geocoding方法,将这个点作为参数传递,并使用then方法来处理返回的结果。

      最后,我们计算出屏幕上的像素距离,这个距离等于地图的缩放级别乘以距离,然后乘以地图的缩放级别。

      请注意,这只是一个基本示例,实际的代码可能需要根据你的具体需求进行调整。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部