我正在尝试使用Google地球API通过搜索字段创建地球的简单视图,用户可以在其中键入位置。当他们击中时,地球将放大他们输入的位置。
我希望视图能够直视他们指定的位置。我尝试了以下代码:
var lookAt = ge.createLookAt('');
lookAt.set(point.y, point.x, 600, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 00, 0);
ge.getView().setAbstractView(lookAt);
但这总是略微错误的位置,
答案 0 :(得分: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);
如果没有,当你说“用户可以输入位置”时,你是说你要对一个条目进行地理编码吗?例如,用户输入“纽约”或“M20 1LL”?如果是这样,您应该意识到地理编码不是一门精确的科学,并且结果并不总是准确的(特别是使用免费的地理编码服务)。
如果是这种情况,有两种真正的解决方案;
1)支付使用商业地理编码服务以保证准确性。
2)构建您自己的数据库或缓存,其中包含“关键”位置的预先计算的地理编码器响应。 http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching
BTW代码看起来是AOK ...除了倾斜的双零(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);