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

Google maps api 3 使用Maps V3在Google Earth API中进行地理编码,google-maps-api-3,google-earth-plugin,Google Maps Api 3,Google Earth Plugin,不久前,我使用GE插件开发了一个应用程序。在该应用程序中,我使用地理编码函数,这当然取决于(maps,2.xx)。随着Google Maps V2的弃用,这部分代码不再有效。我的代码基于GoogleEarth演示站点()中的地理编码示例应用程序,该应用程序也不再有效 我搜索了v3站点,但找不到处理此问题的方法。使用 google.load(“maps”,“3.xx”) 而不是 google.load(“maps”,“2.xx”); 根本不起作用,谷歌地图服务器拒绝了我。你可以加载v3脚本并修改项

不久前,我使用GE插件开发了一个应用程序。在该应用程序中,我使用地理编码函数,这当然取决于(maps,2.xx)。随着Google Maps V2的弃用,这部分代码不再有效。我的代码基于GoogleEarth演示站点()中的地理编码示例应用程序,该应用程序也不再有效

我搜索了v3站点,但找不到处理此问题的方法。使用 google.load(“maps”,“3.xx”)
而不是 google.load(“maps”,“2.xx”);
根本不起作用,谷歌地图服务器拒绝了我。

你可以加载v3脚本并修改项目的地理编码部分,但是如果你只需要地理编码,你可以直接调用


或者,您可以保留您现有的代码:大多数旧的v2代码实际上仍然可以工作,只是GLatLng.x和y被删除了。因此,分别使用point.lng()和point.lat()代替point.x和point.y。

使用
google.load(“maps”,“3.xx”)的原因不起作用是您必须提供传感器参数。i、 e.
google.load('maps','3.6',{其他参数:'sensor=false'})

必须包括URL的传感器参数,并指示 此应用程序是否使用传感器(如GPS定位器)来 确定用户的位置。我们把这个例子留作变量 将_设置为_true _或_false以强调必须将此值设置为 要么是真的,要么是假的

见:

不管怎么说,我用Google Maps V3地理编码器和地球Api做了一个演示,让你看看它是如何工作的

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


load('earth','1');
load('maps','3.6',{other_params:'sensor=false'});//还是真的
var ge=null;//GEPlugin
var geocoder=null;//GClientGeocoder
var init=function(){
createInstance('map3d',initCallback,failureCallback);
};
var initCallback=函数(对象){
ge=对象;
geocoder=newwindow.google.maps.geocoder();//v3 geocoder
ge.getWindow().setVisibility(true);
//例如:纽约地理代码
地理编码(“纽约”);
};
var failureCallback=函数(错误){
警报(“插件错误:+错误”);
};
var geocode=函数(地址){
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
//做一些有结果的事情,比如飞向它。。。
var point=结果[0]。geometry.location;
var lookat=ge.createLookAt(“”);
lookat.set(point.lat(),point.lng(),100,相对于地面的ge高度,0,0,1000);
ge.getView().setAbstractView(lookat);
}否则{
警报(“地理代码错误:+状态”);
}
});
};
setOnLoadCallback(init);
<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>