【问题标题】:Getting percentage-based or pixel based x & y coordinates from latlng从 latlng 获取基于百分比或基于像素的 x & y 坐标
【发布时间】:2016-01-12 13:00:59
【问题描述】:

我目前正在尝试从传单中的 latlng 获取百分比或像素坐标。

以下是创建地图并定义图块的脚本(取自名为“maptiler”的应用程序)

    var mapMinZoom = 0;
    var mapMaxZoom = 3;
    var map = L.map('main-map', {
        maxZoom: mapMaxZoom,
        minZoom: mapMinZoom,
        crs: L.CRS.Simple
    }).setView([0 0], mapMaxZoom);
    var mapBounds = new L.LatLngBounds(
        map.unproject([0, 1792], mapMaxZoom),
        map.unproject([2048, 0], mapMaxZoom));

    map.fitBounds(mapBounds);
    L.tileLayer('/_Content/leafletmap/{z}/{x}/{y}.png', {
        minZoom: mapMinZoom, maxZoom: mapMaxZoom,
        bounds: mapBounds,
        noWrap: true,
        tms: false
    }).addTo(map);

这里的主要要求是cordova应用程序中的离线功能,这就是我们不使用谷歌地图API的原因。

【问题讨论】:

    标签: javascript leaflet


    【解决方案1】:

    您可能正在寻找传单地图Conversion Methods

    • latLngToLayerPoint(latlng) 获取相对于整个地图的图层点。
    • latLngToContainerPoint(latlng) 获取相对于地图容器的点(在您的情况下为'main-map')。

    【讨论】:

    • 我已经生成了一个 4096*4096 的图像(代码中的值相应更新),用黑色填充以确保我点击了地图的角落,似乎左上角在那个函数中返回{x: 113, y: -65},右下角是{x: 366, y: 188}
    • 您可能正在尝试将 x/y 坐标映射到 4096px 侧的图像像素?在这种情况下,您可能会对该帖子感兴趣:Leaflet custom coordinates on image。如果您只使用L.CRS.Simple,您的 x/y 坐标将映射到缩放级别 0 的像素。
    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2015-12-19
    • 2013-12-24
    相关资源
    最近更新 更多