2011-09-28 79 views
3

我正在運行Mac OSX Lion和Xcode 4.1.1。我創建了一個新的Phonegap項目,並在index.html中添加了以下代碼。在iPhone模擬器上顯示谷歌地圖 - Phonegap

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"> 
    </script> 

    <!-- Tried setting sensor=true, didn't work too --> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> 
    </script> 

    <script type="text/javascript" charset="utf-8" > 

    function display(position){ 
     var initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
     var myOptions = { 
       zoom: 12, 
       center: initialLocation, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
     } 

     function error() 
     { 
      alert('Not working'); 
     } 

     function init() 
     { 
      navigator.geolocation.getCurrentPosition(display,error); 
     } 
     </script> 
    </head> 
    <body onload="init()"> 
     <div id="map_canvas"></div> 
    </body> 
</html> 

然而,代碼拒絕工作。我甚至在我的Phonegap.plist中啓用了「EnableLocation」鍵。我沒有收到任何警告,說「Testapp想知道你的位置,允許?」。我得到的是控制檯上的這個錯誤

navigator.geolocation.setError({ 'code': 1, 'message': 'Location Services Not Enabled' }); 

有人可以幫我嗎?

回答

6

我希望我知道該告訴你什麼,但我希望這會有所幫助。我認爲你的代碼很好。我剛剛在Snow Leopard上的Dreamweaver的iOS 4.3模擬器上運行它,它工作正常。但是,我不得不做出一些調整,因爲DIV完全崩潰了。地圖在那裏,但沒有顯示。

只是爲了證明給自己,嘗試添加這對您的map_canvas提供DIV

style="height: 400px" 

當我這樣做,我可以看到地圖上的罰款。

我不是CSS專家,所以我不知道如何讓愚蠢的div擴大到地圖的大小。也許你必須用CSS來完成。身高100%沒有工作。有時CSS真的會打擊。

+0

那麼,它適用於iPhone設備:-)感謝您的幫助 – thandasoru