【问题标题】:Obtaining GE Plugin Client Coordinates获取 GE 插件客户端坐标
【发布时间】:2012-09-09 06:44:26
【问题描述】:

我正在编写一个带有 WebBrowser 控件的 WinForms 应用程序。我在这个应用程序中使用了谷歌地球插件,并且需要在谷歌地球上创建一些地标。根据当前范围(缩放级别),某些地标在屏幕上可能彼此非常接近(当地球足够缩小时)。在这种情况下,我想创建的不是所有地标,而是一些地标,以避免屏幕上的地标过于拥挤。

例如,假设我有 1000 个点要创建地标。当我遍历要创建的地标的所有点时,我想将每个点的纬度/经度转换为 WebBrowser 控件的客户端坐标,以便我可以检查它是否非常接近(在屏幕上)已创建的其他地标.如果它非常接近其他地标,我将跳过创建此地标。因此,如果用户缩小到一定程度,实际创建的地标数量可能远小于 1000 个(例如 400 个)。

这是我遇到困难的地方。我不知道是否有办法将纬度/经度转换为托管 Google 地球插件的 WebBrowser 控件的客户端坐标。我知道对于鼠标事件,我可以使用客户端坐标,但在这种情况下不涉及鼠标事件。

有人知道如何实现这一点吗?谢谢!

【问题讨论】:

    标签: google-earth-plugin


    【解决方案1】:

    您尝试用于解决问题的方法不正确。但是有几个选项:

    采用您当前的方法 - 您有两种选择:

    1. 您可以要求当前视图将给定的纬度/经度转换为屏幕 X/Y。

      https://developers.google.com/earth/documentation/reference/interface_g_e_view#a8c39d0324f2350c54fe2de981f1be418

    2. 您可以将客户端鼠标坐标作为由GEWindow 类触发的 KML 鼠标事件的一部分:

      https://developers.google.com/earth/documentation/reference/interface_g_e_window-members

      被触发的KMLMouseEvent 包含客户端 X/Y 空间:

      https://developers.google.com/earth/documentation/reference/interface_kml_mouse_event

    正确的方法是将 KML 区域标签添加到您的地标,以便地标在用户平移/缩放等时显示/隐藏。

    http://www.google.com/earth/outreach/tutorials/region.html

    【讨论】:

    • 你给我的信息很有价值。我感谢您的帮助。谢谢!
    • 欢迎您,欢迎堆栈溢出。请投票和/或接受对您有帮助的答案。单击空白复选标记以接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2011-03-15
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多