python中X和Y的纬度和经度

时间:2018-04-17 21:45:07

标签: python gps coordinates transform

我正在使用Google地图中的图片,大小约为200x200英尺(房屋大小及其属性)。我的目标是有一个输入坐标(例如[37.211817,-86.682670]),可以使用我自己的数学在我拍摄的Google地图上放置一个标记。我看过并试过很多方法。我只是想拿一个纬度/经度,按比例将它放在一个正方形的X和Y大。

2 个答案:

答案 0 :(得分:0)

为了简单起见,我们假设GPS坐标可以线性地缩放到另一个坐标系。您需要图像上最左上角的GPS坐标和最右下角的点:

伪代码:

input: gps_marker

let gps1 = lat/lon of location corresponding to top left of image.
let gps2 = lat/lon of location corresponding to bottom right of image.

let x_offset = (gps_marker.lon - gps1.lon)/(gps2.lon - gps1.lon) * image.width
let y_offset = (gps_marker.lat - gps1.lat)/(gps2.lat - gps1.lat) * image.height

// x_offset and y_offset are the x,y for your marker within the image.

答案 1 :(得分:0)

好的,我找到了答案,我将分享它,因为它似乎比我预期的更复杂。解决方案是顺时针旋转GPS坐标90°,然后在Y轴上执行反射。 - > (y,-x)+> (x,-y)。

修改

所以,所有必须发生的事情就是翻转x和y。它是lat-lon,而不是lon-lat。

然后,它是一个简单的缩放公式,以适应您的屏幕。下面是代码:

var button = document.getElementById("submitButton");
var inputOne = document.getElementById("WG_Collected");
var inputTwo = document.getElementById("Proof");

//keyup if you press any key
inputOne.addEventListener("keyup", function() {
    calcPG();
}, true);
inputTwo.addEventListener("keyup", function() {
    calcPG();
}, true);

//if some of the inputs get focus
inputOne.addEventListener("focus", function() {
    calcPG();
}, true);
inputTwo.addEventListener("focus", function() {
    calcPG();
}, true);

//your button click
button.addEventListener("click", function() {
    calcPG();
 }, true);

function calcPG (){
    var num1 = document.getElementById('WG_Collected').value;
    var num2 = document.getElementById('Proof').value;
    var PG_Collected = parseFloat(num1) * parseFloat(num2)/100;
    document.getElementById('PG_Collected').innerHTML = PG_Collected.toFixed(2);
}