gpt4 book ai didi

.net - 给定缩放级别,将long/lat转换为像素x/y

转载 作者:行者123 更新时间:2023-12-04 10:59:08 25 4
gpt4 key购买 nike

我正在尝试在ASP.NET中开发一个页面,该页面将充当Google Map的图块服务器

它将从数据库中提取一组纬度/经度点,然后将其显示为透明背景上的小红点(给定缩放级别)(默认值:15)。

然后它将结果返回为GIF类型的图像。

是否开发了允许我采用这组纬度/经度并将其转换为给定缩放级别的一组2D像素坐标的算法或库?

(这都是在服务器端完成的,因此我无法使用Google Maps API。)

更新:在Perl中找到一个执行类似操作的代码示例:

http://blog.barros.ws/2009/03/06/convert-lat-lng-and-zoom-values-to-pixel-xy-on-a-map/

麻烦的是,我不了解Perl,也没有足够的时间来破解一本书并学习它。

谁能帮助我破译此功能中发生的事情吗?

sub Google_Coord_to_Pix
{
my $value = shift ;
my $lat = shift ;
my $lng = shift ;
my @d = ( ) ;
my $e = 0 ;

$d[1] = sprintf("%0.0f", $$value{'bmO'} + $lng * $$value{'pixLngDeg'} ) ;

$e = sin($lat * $$value{'Wa'}) ;

if( $e > 0.99999 )
{
$e = 0.99999 ;
}

if( $e < -0.99999 )
{
$e = -0.99999 ;
}

$d[0] = sprintf("%0.0f", $$value{'bmO'} + 0.5 * log((1 + $e) / (1 - $e)) * (-1) * $$value{'pixLngRad'} ) ;

return (@d) ;
}

最佳答案

“如果是墨卡托投影,则不必担心地球的曲率,因为所有纬度/经度线的间距都相等”

也许您正在考虑“地理”投影(又名Plate Carree)?墨卡托投影确实具有等距的经度线,但没有等距的纬度线(lat = atan(sinh(y)),因此90°为无穷大)。

顺便说一句,墨卡托投影在球体上的数学运算为here,但是如果Google Maps使用的是WGS84椭球,则需要精确地将其变得更复杂。在这种情况下,我要看看this,但要注意:这不是为了胆小的人。

关于.net - 给定缩放级别,将long/lat转换为像素x/y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com