使用 Google Earth API 查看位置

发布于 2024-07-26 07:20:33 字数 335 浏览 7 评论 0原文

我正在尝试使用 Google Earth API 创建一个简单的地球视图,其中包含一个搜索字段,用户可以在其中输入位置。 当他们点击“开始”时,地球仪将放大他们输入的位置。

我希望视图能够直接向下看他们指定的位置。 我尝试过以下代码:

var lookAt = ge.createLookAt('');
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0);
ge.getView().setAbstractView(lookAt);

但这总是会转到稍微错误的位置,

I am trying to use the Google Earth API to create a simple view of the globe with a search field in which the user can type a location. When they hit go, the globe will zoom in on the location they typed in.

I would like the view to be looking straight down on the location they specified. I have tried the following code:

var lookAt = ge.createLookAt('');
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0);
ge.getView().setAbstractView(lookAt);

But this always goes to slightly the wrong location,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟柳画桥 2024-08-02 07:20:33

难道只是因为你的 point.y 和 point.x 方向错误?

// latitude, longitude, altitude, altitudeMode, heading, tilt, range
lookAt.set(point.x, point.y, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0);

如果做不到这一点,当您说“用户可以输入位置”时,您是否意味着您正在对条目进行地理编码? 例如,用户是否输入“New York”或“M20 1LL”? 如果是这样,您应该意识到地理编码并不是一门精确的科学,并且结果并不总是准确的(尤其是使用免费的地理编码服务)。

如果是这种情况,有两种真正的解决方案;

1) 付费使用商业地理编码服务以保证准确性。

2) 构建您自己的数据库或缓存,其中包含“关键”地点的预先计算的地理编码器响应。
http://code.google.com/apis/ maps/documentation/javascript/v2/services.html#Geocoding_Caching

顺便说一句,代码看起来还不错......除了倾斜的双零(00)......

var lookAt = ge.createLookAt('');

// latitude, longitude, altitude, altitudeMode, heading, tilt, range
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0);

ge.getView().setAbstractView(lookAt);

Could it be simply that you have point.y and point.x the wrong way around?

// latitude, longitude, altitude, altitudeMode, heading, tilt, range
lookAt.set(point.x, point.y, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0);

Failing that, when you say 'the user can type a location' do you mean you are geocoding an entry? For example are the users entering "New York" or "M20 1LL" for example? If so you should realise that geocoding is not an exact science and that the results are not always accurate (especially with free geocoding services).

There are two real solutions if this is the case;

1) Pay to use a commercial geocoding service to guarantee accuracy.

2) Build your own database or cache that contains pre-computed geocoder responses of 'key' places.
http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

BTW the code looks AOK...apart from the double zero (00) for the tilt...

var lookAt = ge.createLookAt('');

// latitude, longitude, altitude, altitudeMode, heading, tilt, range
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 0);

ge.getView().setAbstractView(lookAt);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文