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