gpt4 book ai didi

google-maps-api-3 - 使用 Maps V3 在 Google Earth API 中进行地理编码

转载 作者:行者123 更新时间:2023-12-02 00:03:03 25 4
gpt4 key购买 nike

我前段时间使用 GE 插件开发了一个应用程序。在该应用程序中,我使用当然依赖于 (maps, 2.xx) 的 Geocode 函数。随着 Google Maps V2 的弃用,这部分代码不再有效。我的代码基于 Google 地球演示站点 (http://earth-api-samples.googlecode.com/svn/trunk/examples/geocoder.html) 中的地理编码示例应用程序,该站点也不再有效。

我搜索了 v3 站点,但找不到处理此问题的方法。使用 google.load(" map ", "3.xx");
代替 google.load(" map ", "2.xx");根本行不通,我收到了来自 Google map 服务器的拒绝。

最佳答案

使用 google.load("maps", "3.xx"); 不起作用的原因是您必须提供传感器参数。即 google.load('maps','3.6', { other_params: 'sensor=false' });

The sensor parameter of the URL must be included, and indicates whether this application uses a sensor (such as a GPS locator) to determine the user's location. We've left this example as a variable set_to_true_or_false to emphasize that you must set this value to either true or false explicitly.

参见:https://developers.google.com/maps/documentation/javascript/tutorial#Loading_the_Maps_API

无论如何,我做了一个working example将 Google Maps V3 Geocoder 与 Earth Api 结合使用,让您了解其工作原理。

这里还有一个代码示例,它对术语“纽约”进行地理编码,并在插件和 map api 加载后移动到找到的第一个结果(以防 jsfiddle 将来消失......)

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('earth', '1');
google.load('maps','3.6', { other_params: 'sensor=false' }); // or true

var ge = null; // GEPlugin
var geocoder = null; // GClientGeocoder

var init = function() {
google.earth.createInstance('map3d', initCallback, failureCallback);
};

var initCallback = function(object) {
ge = object;
geocoder = new window.google.maps.Geocoder(); //v3 Geocoder
ge.getWindow().setVisibility(true);

// for example: geocode New York
geocode("New York");
};

var failureCallback = function(error) {
alert("Plugin Error: " + error);
};

var geocode = function(address) {
geocoder.geocode({ 'address': address }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// do something with the result, such as flying to it...
var point = results[0].geometry.location;
var lookat = ge.createLookAt('');
lookat.set(point.lat(), point.lng(), 100, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 0, 1000);
ge.getView().setAbstractView(lookat);
} else {
alert("Geocode Error: " + status);
}
});
};

google.setOnLoadCallback(init);
</script>

关于google-maps-api-3 - 使用 Maps V3 在 Google Earth API 中进行地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20158700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com