2

在 Google 地球中,您可以使用“阳光”图层查看地形在任何给定日期时间投射的阴影:http: //i.stack.imgur.com/YFGMj.png

但是,我无法找到从 API 访问阳光/亮度/阴影/等值的任何方法。

我正在寻找一种方法来提供 Lat、Long 和 DateTime 以确定一个区域是否处于阳光下(考虑到地形阴影,有无数的服务可以提供简单的日出和日落时间,但这些不考虑地形) . 这可以使用 Google 地球手动完成,但我正在寻找一种编程方法。

感谢您的任何想法,想法,线索...

4

2 回答 2

3

我意识到这是一个老问题,但它出现在我刚刚做的谷歌搜索中,我喜欢这个焦点。

由于您正在寻找一种编程方式来确定地球上由经度和纬度元组给出的点是否在给定时间暴露在阳光下,所以我现在无法帮助您。但是,如果我们看到这是许多人需要的功能,我可以很容易地设置这样的 API。在 suncurves.com,我们根据地形计算日出和日落时间。到目前为止,我们设置的解决方案是一个 Web 界面,用户可以在其中搜索地址或将图标拖放到地图上,以获取该地点一年中的日出和日落时间,并考虑地形。我们想为我们的数据创建一个 API,但我们还没有明确说明这个 API 的范围。您的要求要求我们需要:

  1. 从经度和纬度的视点计算视地平线。这意味着在您的点周围 30-50 公里的搜索半径内扫描地形数据。
  2. 计算指定时间的太阳位置。
  3. 计算指定时间的太阳位置。根据您的点周围的地形(考虑到大气折射),确定太阳是在地平线之下还是在地平线之上。

这是法国夏蒙尼的一个例子,那里常见的平坦地形版本的日出,日落时间非常不值钱。

http://suncurves.com/v/7/

于 2014-02-28T11:25:28.263 回答
0

我不确定确定 AOI 在某个时间是在阳光下还是在阴凉处,但是您可以通过使用在 API 中将 SUN 设置为打开或关闭

GESun.setVisibility

编辑:

使用 GE 插件,创建一个具有所需 AOI 纬度/经度的 LookAt,其中视图在正上方直视下方。根据您实际 AOI 的大小,我会尽可能地保持视野低至地面。

然后捕获屏幕截图/图像 - 我认为这不可能通过 GE 实现(如果有人知道我想找出的方法),所以也许使用 javascript 来获取它 - 我在 SO 上找到了这个 Q提供了一些见解。

在 GESun.setVisibility 设置为 ON 的情况下截取一个屏幕截图,然后在另一个设置为 OFF 的情况下截取屏幕截图

比较两个图像的黑暗/明亮或其他东西,并确定您的 AOI 是否在阴影中。您可能会发现最好将您的 AOI 包围在某种多边形中,以帮助您的程序将其与图像的其余部分区分开来 - 取决于 LookAt 的高度等等......

我对如何比较图像没有任何想法,但是再次搜索 SO 导致了这个(我假设在 PHP ImageMagick 中找到 COLOR_BLACK 的值)和这个(颜色桶的想法)。根据您选择的方法,在进行比较之前将图像更改为黑白可能会有所帮助。

于 2012-10-07T21:18:32.407 回答