Javascript 谷歌地图不在android emulator ionic框架(navigator.geolocation.getCurrentPosition)上运行
我的应用程序在浏览器上运行良好,但在emulator上无法渲染谷歌地图。 此应用程序基于现有的应用程序,该应用程序已经有一个谷歌地图在模拟器(和设备)上运行良好 我想是因为navigator.geolocation.getCurrentPosition没有触发。 我用 但我仍然有这个问题。 这是我的控制器:Javascript 谷歌地图不在android emulator ionic框架(navigator.geolocation.getCurrentPosition)上运行,javascript,android,google-maps,android-emulator,ionic-framework,Javascript,Android,Google Maps,Android Emulator,Ionic Framework,我的应用程序在浏览器上运行良好,但在emulator上无法渲染谷歌地图。 此应用程序基于现有的应用程序,该应用程序已经有一个谷歌地图在模拟器(和设备)上运行良好 我想是因为navigator.geolocation.getCurrentPosition没有触发。 我用 但我仍然有这个问题。 这是我的控制器: .controller('MapsCtrl',函数($scope,Service,$ionicLoading,$ionicPopup,$compile){ $ionicLoading.sh
.controller('MapsCtrl',函数($scope,Service,$ionicLoading,$ionicPopup,$compile){
$ionicLoading.show();
Service.getSedi().then(函数(结果){
var sede=结果数据[0];
navigator.geolocation.getCurrentPosition(函数(pos)){
var myPosition=new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude);
var map=新GMAP({
分区:“#地图”,
纬度:位置坐标纬度,
液化天然气:位置坐标经度
});
map.addMarker({
拉丁语:sede.indirizzo.lat,
液化天然气:sede.INDIRIZO.lng,
标题:sede.titolo,
信息窗口:{
内容:'+sede.titolo+''+sede.indirizzo.address+'
'
}
});
//反向地理编码(从坐标获取人类可读地址)
var geocoder=new google.maps.geocoder();
变量opt={
纬度:位置坐标纬度,
液化天然气:位置坐标经度,
回调:函数(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
日志(结果[1]。格式化的_地址+''+myPosition);
map.addMarker({
职位:我的职位,
信息窗口:{
内容:'Estas aqí'+结果[1]。格式化的地址+'
'
}
});
}
}
};
地理编码(opt);
//端反向地理编码
绘制路线图({
原点:[坐标位置纬度,坐标位置经度],
目的地:[sede.indirizzo.lat,sede.INDIRIZO.lng],
travelMode:‘驾驶’,
strokeColor:“#131540”,
笔划不透明度:0.6,
冲程重量:6
});
//搜索地点
var arrayId=[];
map.addLayer('places'{
位置:新google.maps.LatLng(位置坐标纬度,位置坐标经度),
半径:600,
类型:[“咖啡馆”、“酒吧”、“食品”],
搜索:功能(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i'+(place.neighborary?place.neighborary:place.formatted_address)+''
}
});
}
}
}
});
//zoomOut地图(5);
//克里奥艾尔区和洛斯博通酒店
var节点=document.createElement(“div”);
var text=document.createTextNode(“ACA VAN LOS BOTONES”);
追加子节点(文本);
node.setAttribute(“id”、“mapBottom”);
document.getElementById(“映射”).appendChild(节点);
},函数(错误){
$ionicPopup.alert({
标题:“错误”,
模板:'code:'+error.code+'\n'+'消息:'+error.message+'\n'
});
});
$ionicLoading.hide();
},函数(){
$ionicLoading.hide();
$ionicPopup.alert({
标题:“错误”,
模板:“服务器错误!
重新启动应用程序!”
});
});
})
这是因为仿真器没有GPS,无法像您在使用GPS的设备中看到的那样进行实时更新
有一些方法可以在模拟器中测试应用程序地理空间功能的行为。不过,你必须为此做些工作
以下是一些参考资料:
用于通过Telnet连接仿真器。(有用)我将这些行添加到AndroidManifest.xml
如果您的问题没有解决,请添加cordova插件列表,以确认您正确添加了geolocation插件,该插件刚刚在手机中测试过,效果很好,但不会在我的模拟器中呈现。以下是我的插件列表:cordova插件地理位置1.0.1-dev“geolocation”org.apache.cordova.inappbrowser 0.5.2“inappbrowser”