gpt4 book ai didi

leaflet - 在 Leafletjs 上设置投影

转载 作者:行者123 更新时间:2023-12-04 15:01:00 26 4
gpt4 key购买 nike

我在家庭项目中使用 Leafletjs(这是看起来,现在
但是我找不到必须设置投影的方法,我为 OpenLayers 找到了它,如下所示:

// Openlayers settings 
//var defaultMaxExtent = new OpenLayers.Bounds(427304, 6032920, 927142, 6485144);
var defaultMaxExtent = new OpenLayers.Bounds(427304, 6032920, 927142, 6485144);

var defaultProjection = "EPSG:25832";
var defaultUnits = "Meters";
var defaultResolutions = new Array(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024);
var defaultExtent = new OpenLayers.Bounds(215446, 2103547, 706886, 6203897); //this extent is used when the page is loaded.
//var defaultExtent = new OpenLayers.Bounds(705446, 6203547, 706886, 6203897); //this extent is used when the page is loaded.
map = new OpenLayers.Map('map', { projection: defaultProjection, units: defaultUnits, maxExtent: defaultMaxExtent, resolutions: defaultResolutions, controls: [

// Hide controls by default
new OpenLayers.Control.Navigation({ wheelChange: HideInfoBox() }),
new OpenLayers.Control.ArgParser(),
new OpenLayers.Control.Attribution()]
});
layer = new OpenLayers.Layer.WMS("kort", "http://serverAddress?", { nbr: '', username: 'admin', password: 'adminadmin', layers: 'Overlayer', format: 'image/png' });

有人可以帮助我吗?

更新:
我试图从 Leaflet 中获取标准投影并对其进行自定义,就像这样
L.CRS.EPSG25832 = L.extend({}, L.CRS, {
code: 'EPSG:25832',
projection: L.Projection.SphericalMercator,
transformation: new L.Transformation(0.5 / Math.PI, 0.5, -0.5 / Math.PI, 0.5),

project: function (latlng) { // (LatLng) -> Point
var projectedPoint = this.projection.project(latlng),
earthRadius = 6378137;
return projectedPoint.multiplyBy(earthRadius);
}
});

现在投影是正确的。但现在的问题是坐标错误,例如,如果我从 Leaflet 获取坐标,Kolding 现在位于法国中部而不是丹麦。

最佳答案

我自己找到了解决问题的方法。
通过这样做:

var crs = L.CRS.proj4js('EPSG:25832', '+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs', new L.Transformation(0.5 / (Math.PI * L.Projection.Mercator.R_MAJOR), 0.5, -0.5 / (Math.PI * L.Projection.Mercator.R_MINOR), 0.5));

var map = new L.Map('Krak-Map', { center: new L.LatLng(latitude, longitude), zoom: 17, crs: crs });

关于leaflet - 在 Leafletjs 上设置投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15224253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com