我从地图的一部分按实际比例绘制了8640x11520像素的图像。我需要将我的x,y点转换为坐标,任何人都有发现它的想法??
var mapWidth = 8640;
var mapHeight = 11520;
var mapLatitudeStart = 28.349768989955244;
var mapLongitudeStart = -81.55803680419922;
var maxLatitude = 28.349806758250104;
var maxLongitude = -81.541128;
var pointNeedConversion = {'x': 4813.10 'y': 2674.84};
var pointLatitude = ??
当您要映射到经/纬时,请注意,不能以线性比例进行操作,而是必须检查对地图应用了哪种投影,然后相应地转换坐标。
通常,地图是WGS84投影,因此您必须对墨卡托投影应用反公式。
这项任务并不简单,所以我的建议是依赖像Proj4js这样的库
该库的用法很简单,您可以提供一个参考系统进行处理,然后可以在另一个投影上变换坐标。
// include the library
<script src="lib/proj4js-combined.js"></script> //adjust the path for your server
//or else use the compressed version
// creating source and destination Proj4js objects
// once initialized, these may be re-used as often as needed
var source = new Proj4js.Proj('EPSG:4326'); //source coordinates will be in Longitude/Latitude, WGS84
var dest = new Proj4js.Proj('EPSG:3785'); //destination coordinates in meters, global spherical mercators projection, see http://spatialreference.org/ref/epsg/3785/
// transforming point coordinates
var p = new Proj4js.Point(-76.0,45.0); //any object will do as long as it has 'x' and 'y' properties
Proj4js.transform(source, dest, p); //do the transformation. x and y are modified in place
//p.x and p.y are now EPSG:3785 in meters
摘录内容:将给定图片上的long / lat转换为像素x / y
工作示例:
var dest = new proj4.Proj('EPSG:4326'); //destination coordinates coordinates will be in Longitude/Latitude, WGS84 , global spherical mercators projection, see http://spatialreference.org/ref/epsg/3785/
var source = new proj4.Proj('EPSG:3785'); //source coordinates in meters
$("#convert").on("click", function(){
var p = new proj4.Point($("#x").val(), $("#y").val() );
proj4.transform(source, dest, p);
alert("lng : " +p.x + " \nlat : " + p.y);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
x : <input type="number" id="x" />
y : <input type="number" id="y" />
<button id="convert">Convert</button>
注意:如果要使用它来绘制GPS信号,必须知道地图角的纬度/经度。
这是一个图形示例,直观地解释了为什么线性比例不合适:
仔细观察格陵兰岛的大小,例如在墨卡托投影空间坐标上,它看上去比北美还要大。当然不是!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句