我正在使用vaadin插件的v-leaflet(0.61)在地圖上顯示一些圖層。如何將經簡化後的經緯度轉換爲EPSG:4326
點擊地圖,我創建一個wms查詢geoserver。 查詢需要一些參數,其中之一是bbox。 我想,默認情況下,由地圖返回的bbox位於CRS.Simple中,是一個神祕的傳單座標系統。
即使我已經設置屬性
leafletMap.setCrs(Crs.EPSG3857);
myoverlayer.setCrs(Crs.EPSG3857);
既地圖和層。
我學會了here使用JTS拓撲套件從EPSG轉換到另一個的方法。
但我找不到從leafltet使用的Crs.Simple轉換爲EPSG(4326更好)的方法。
如果我設置EPSG3857,無論是地圖和圖層,它返回我是這樣的邊框:
約束:6.0919189453125,45.11617660357484,11.134643554687498, 46.50217348354072
如果我設置EPSG4326,用了同樣的觀點:
約束:6.0919189453125,44.81597900390625,11.1346435546875,
46.80450439453125
似乎只有緯度值已被改變。
我tryed使用也JTSTool(JTS拓撲套房)從EPSG3857轉換爲EPSG4326和值:
BBOX = 4.0528551003362907E-4,5.4724638981914947E-5,4.1773613184440224E -4,1.0002420488398699E-4
這聽起來太奇怪了....
有人可以幫助我瞭解CRS用於定義BBOX?或者任何方式來改變它們?
"
CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:4326");
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:3857");
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, false);
GeometryFactory geometryFactory = new GeometryFactory(new PrecisionModel(), 4326);
com.vividsolutions.jts.geom.Point point = geometryFactory.createPoint(new Coordinate(bbb.getSouthWestLon(),bbb.getSouthWestLat()));
com.vividsolutions.jts.geom.Point point2 = geometryFactory.createPoint(new Coordinate(bbb.getNorthEastLon(),bbb.getNorthEastLat()));
com.vividsolutions.jts.geom.Point targetPoint = (com.vividsolutions.jts.geom.Point) JTS.transform(point, transform);
com.vividsolutions.jts.geom.Point targetPoint2 = (com.vividsolutions.jts.geom.Point) JTS.transform(point2, transform);"
問題是我可以導入proj4Leaflet無法在vaadin的Leaflet之前加載它。 所以不可能使用。 –