Google maps api 3 使用Maps V3在Google Earth API中进行地理编码
不久前,我使用GE插件开发了一个应用程序。在该应用程序中,我使用地理编码函数,这当然取决于(maps,2.xx)。随着Google Maps V2的弃用,这部分代码不再有效。我的代码基于GoogleEarth演示站点()中的地理编码示例应用程序,该应用程序也不再有效 我搜索了v3站点,但找不到处理此问题的方法。使用 google.load(“maps”,“3.xx”)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脚本并修改项
而不是 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>