形象一点,view和layer的坐标

view的frame由bounds和center共同决定。概念不说,只打比方:
决定一张纸的大小的属性是长宽,这是bounds.size;
如今这张纸的中心位置钉着个图钉,若把这张纸钉在墙上,只需要知道图钉相对于墙的位置,这是center;
现在要在这张纸上的某个坐标画个点,那应该知道这个坐标系的原点在哪,这是bounds.origin。

大小不说,layer的位置由position和anchorpoint共同决定。同样,只打比方:
layer的图钉不在中心了,而是从左上角(0, 0)到右下角(1, 1)找一个点钉一下,这是anchorpoint;
现在将这张钉着图钉的纸钉在墙上,只需知道图钉相对于墙的位置,这是position。

对于OpenLayers来说,改变坐标系可以通过使用投影对象(projection)来实现。以下是一些步骤: 1. 首先,确定你想要使用的新的目标坐标系。例如,如果你想从经纬度坐标系(WGS84)切换到Web墨卡托投影(EPSG:3857),你可以使用`new ol.proj.Projection()`来创建一个新的投影对象。 ```javascript var newProjection = new ol.proj.Projection({ code: 'EPSG:3857', extent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34] }); ``` 2. 然后,将该投影对象应用于你要使用的图层或地图。 ```javascript var layer = new ol.layer.Tile({ source: new ol.source.OSM(), projection: newProjection }); var map = new ol.Map({ layers: [layer], target: 'map', view: new ol.View({ projection: newProjection, center: [0, 0], zoom: 2 }) }); ``` 在这个例子中,我们创建了一个使用新投影的Tile图层,并在地图视图中设置了相应的投影和初始中心点。 3. 最后,如果你的数据源使用不同的坐标系,请确保进行相应的转换。可以使用`ol.proj.transform()`方法将坐标从一个投影转换为另一个投影。 ```javascript var lonLatCoords = [10, 20]; // 经纬度坐标系 var transformedCoords = ol.proj.transform(lonLatCoords, 'EPSG:4326', 'EPSG:3857'); // 转换为Web墨卡托投影 console.log(transformedCoords); // 输出转换后的坐标 ``` 这样,你就可以在OpenLayers中改变坐标系了。记得根据你的需求修改投影对象和转换方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值