phonegap 中的地理位置无法在模拟器上运行

Posted

技术标签:

【中文标题】phonegap 中的地理位置无法在模拟器上运行【英文标题】:Geolocation in phonegap not working on emulator 【发布时间】:2014-10-08 10:45:03 【问题描述】:

我是 phonegap 开发的新手。请帮助我摆脱以下问题。 我正在开发一个 phonegap 应用程序,我必须在其中读取当前的地理位置坐标并据此在地图上显示地理位置。当我在浏览器中运行我的代码时,它工作正常,但是当我在模拟器或移动设备上运行应用程序时,地图上没有显示任何内容,白屏代替地图可见。

这是我的代码。请帮助我,

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">

        html  height: 100% 
        body  height: 100%; margin: 0; padding: 0 
        #map_canvas  height: 100% width: 100%

    </style>

    <script type="text/javascript"
            src="http://maps.googleapis.com/maps/api/js?key=AIzaSyA6YvhWQgns2SVExEys8V-WeVfxdQAIqVQ">
    </script>

    <script type="text/javascript">
  var lat  = 0;
  var long = 0;

  infowindow.open(map,marker);

function initGeolocation()
  if( navigator.geolocation)
  // Call getCurrentPosition with success and failure callbacks
  //navigator.geolocation.getCurrentPosition( success, fail );
  navigator.geolocation.getCurrentPosition(success,fail,enableHighAccuracy:true,timeout:9000);

  
  elsevar long = position.coords.longitude;
  var lat = position.coords.latitude;
  alert("Sorry, your browser does not support geolocation services.");
  
  

function success(position)
  

  var long = position.coords.longitude;
  var lat = position.coords.latitude;
  console.log('Coordinates: ' +position.coords);
  console.log('TimeStamp' + position.timestamp);

    var myOptions =
    

  center: new google.maps.LatLng(lat,long),
  zoom: 12,
  mapTypeId: google.maps.MapTypeId.ROADMAP
    ;

  var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
  marker = new google.maps.Marker(
  position: new google.maps.LatLng(lat, long),
  map: map
  );
  

  function fail()
  
  console.log('error' +error.message);
  console.log('code' + error.code);
  alert("error");
  

 </script>
    <div class="divImageHolder">
        <a href="menu.html" title="Mouseover Description"><img style="width: 20px; height: 20px; border: 0;" src="http://etc-mysitemyway.s3.amazonaws.com/icons/legacy-previews/icons/green-jelly-icons-media/003210-green-jelly-icon-media-a-media31-back.png" ></a></div>
    </div>
</head>

<body onload="initGeolocation()">
<div id="map_canvas" style="width:100%; height:100%">

</div>
</body>
</html>

提前致谢。

【问题讨论】:

【参考方案1】:

你在模拟器中设置了地理位置吗?

在模拟器中指定位置坐标。

Eclipse -> 打开透视图 -> DDMS -> 模拟器控制 -> 位置控制

指定位置坐标并按“发送”

引用自[这里]PhoneGap. Failed to start Geolocation service

【讨论】:

我正在使用 Intellij IDE 你找到解决办法了吗? @Tate 不,我没有在 intellij IDE 中找到任何 DDMS 那么你必须使用 Eclipse 或兼容设备进行测试。

以上是关于phonegap 中的地理位置无法在模拟器上运行的主要内容,如果未能解决你的问题,请参考以下文章

phonegap-plugin-push设置启动

无法将位置更改为本地文件,例如 Phonegap 3.5 中的 cdvfile://path/index.html

重命名后新的 PhoneGap / Cordova iOS 项目将无法运行

Phonegap 地理位置跳跃

无法运行科尔多瓦示例项目(phonegap)

Ripple 模拟器无法在 Macos 上运行