3

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

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

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

但这总是稍微有点错误的位置,

4

1 回答 1

2

难道仅仅是因为你的 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);
于 2010-09-09T14:57:47.020 回答