当前位置: 首页 > 知识库问答 >
问题:

从google static maps获取像素协调

蓟和煦
2023-03-14

我想要是从一个lat/lng长能够映射latlng到像素坐标。我搜索了一下,发现墨卡托投影可以解决我的问题。然而,我找不到任何适当的方法来做这件事。谁能帮帮我。同时,如URL所示,我已经缩放到9。

共有1个答案

左丘宜然
2023-03-14

如果您想直接在地图的位图上进行绘制,将google静态地图的lat/lon转换为pixel是非常有用的。这可能比通过URL传递数百个参数更好。我遇到了同样的问题,并在网上找到了四个类似的解决方案,但都是用其他语言写的。我把它翻译成了C#。我相信在Java或C中使用这段简单的代码也会很容易:

//(half of the earth circumference's in pixels at zoom level 21)
static double offset = 268435456; 
static double radius = offset / Math.PI;
// X,Y ... location in degrees
// xcenter,ycenter ... center of the map in degrees (same value as in 
// the google static maps URL)
// zoomlevel (same value as in the google static maps URL)
// xr, yr and the returned Point ... position of X,Y in pixels relativ 
// to the center of the bitmap
static Point Adjust(double X, double Y, double xcenter, double ycenter, 
                    int zoomlevel)
{
    int xr = (LToX(X) - LToX(xcenter)) >> (21 - zoomlevel);
    int yr = (LToY(Y) - LToY(ycenter)) >> (21 - zoomlevel);
    Point p = new Point(xr, yr);
    return p;
}

static int LToX(double x)
{
    return (int)(Math.Round(offset + radius * x * Math.PI / 180));
}

static int LToY(double y)
{
    return (int)(Math.Round(offset - radius * Math.Log((1 + 
                 Math.Sin(y * Math.PI / 180)) / (1 - Math.Sin(y * 
                 Math.PI / 180))) / 2));
}

用法:

  1. 调用此函数获取X和Y像素坐标
  2. 结果引用位图的中心,因此将位图width/2和heigth/2添加到x和y值。这就给出了绝对像素位置
  3. 检查像素位置是否在位图内
  4. 想画什么就画什么
 类似资料:
  • 问题内容: 我正在寻找从中获取像素数据(以表格形式)的最快方法。我的目标是能够解决像素从使用图像。我发现的所有方法均不执行此操作(大多数方法都返回)。 问题答案: 我只是在玩同一个主题,这是访问像素的最快方法。我目前知道执行此操作的两种方法: 使用的答案中所述的BufferedImage 方法。 通过直接使用以下方式访问像素数组: 如果你要处理大图像并且性能是一个问题,则第一种方法绝对不是可行的方

  • 问题内容: 我正在尝试从位图获取像素rgb值。我得到了一些价值,但远没有达到我期望的价值。我也得到: 我找不到界外错误… 这是代码: 问题答案: 这个: 与此不符: 你已经计数的行和列,即包含 ÿ 值和包含 X 的值。那是倒退。

  • 问题内容: 如何从CVPixelBufferRef获取RGB(或任何其他格式)像素值?香港专业教育学院尝试了许多方法,但没有成功。 问题答案: 是不安全的可变指针,或更确切地说是。将指针转换为更特定的类型后,即可轻松访问内存: 确保使用正确的类型(8、16或32位unsigned int)。这取决于视频格式。最有可能是8位。 缓冲区格式的更新: 您可以在初始化实例时指定格式。您基本上可以选择: B

  • 问题内容: Q1) 在我的reactjs应用程序中,我正在尝试从后端Nodejs服务器获取API。API会根据请求响应图像文件。 我可以在http://192.168.22.124:3000/source/592018124023PM-pexels- photo.jpg 上访问并查看图像文件 但是在我的reactjs客户端上,我在控制台日志上收到此错误。 未捕获(承诺)SyntaxError:意外

  • 我有一个jpg格式的地图图像。我正在尝试为每个像素计算纬度和经度。我有3点坐标也像素行和列。 地图图像 这里有三点: BLK:LATLNG:39.760751,27.840443 UTM_Meters:571990.1817772812,4401541.17886532区/带:35,'S'像素:[210,247]

  • 实际上我想对每个像素做一些计算,为此我需要显式地访问每个像素。 如有任何帮助或建议,我们将不胜感激。