目前,我可以在世界地图上使用等长方形投影来绘制地理编码,例如推文网站(https://tweetping.net/),但我需要使用美国地图图像。我看到等矩形公式与世界地图图像一起使用但不与美国地图图像一起使用。
这是我目前的等长矩形投影代码,它将纬度和经度转换为css属性的顶部和左侧,我用它来定位世界地图图像上的点:
function projectLat (lat, height) {
if (isNaN(lat) || typeof lat !== 'number' || lat < -90 || lat > 90) {
throw new Error('latitude is not valid');
}
if (isNaN(height) || typeof height !== 'number'){
throw new Error('viewport height is not valid');
}
return ((lat - 90) / -180 * height);
}
function projectLng (lng, width) {
if (isNaN(lng) || typeof lng !== 'number' || lng < -180 || lng > 180) {
throw new Error('longitude is not valid');
}
if (isNaN(width) || typeof width !== 'number'){
throw new Error('viewport width is not valid');
}
return (lng + 180) / 360 * width;
}
我附上了世界地图图像以及我正在使用的美国图像。
任何人都知道怎么做?
非常感谢。
答案 0 :(得分:0)
该图像不起作用。它不是您需要的预测。
因此,等长矩形投影意味着你将北极(这是一个点)拉伸到赤道的大小(4000万米;南极的dito;忽略这个世界不是一个完美的球体的事实)
然后世界是180°高(-90到+90),360°宽(-180到+180)的矩形
结果是相等的纬度点在水平线上。相等的经度点位于垂直线上。
美国有这样的台词。例如:蒙大拿州/华盛顿州/ N-Dakota北部与加拿大的边界是一条直线,位于北纬49°。
你需要一张直线和水平线条的图片。