2012-07-27 69 views
0

我想要一個應用程序,需要我得到我的位置,並顯示在谷歌地圖上。我使用了http://wiki.phonegap.com/w/page/16494764/PhoneGap%20Geolocation%20Sample%20Application的代碼。 我正在使用phonegap 2.0.0開發Android 2.2。我正在使用模擬器2.2。谷歌地圖電話差距地理定位

我已經從Phonegap正確安裝了所有東西,並且獲得了地圖的Google Api3密鑰。 我把鑰匙放在:http://maps.google.com/maps/api/staticmap?center=(here我放鑰匙)。現在,當我啓動應用程序時,我使用CMD發送coördinates。 Telnet本地主機5554,地理修復等。當我啓動應用程序時,它會給出錯誤: 無法取回位置錯誤[object PositionError]。

我不再有錯誤(我添加了啓用HighAccuracy)。 但它不顯示任何東西。所以我認爲我做了谷歌地圖錯誤或我忘了一些東西。

任何人都可以幫助我嗎?它在左上角顯示一個問號。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html> 

    <head> 

<meta name="viewport" content="width=device-width; height=device-height; user-scalable=no" /> 

<meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
<title>Beer Me</title> 
<link rel="stylesheet" href="/master.css" type="text/css" media="screen" /> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> 
<script type="text/javascript"> 

       function loader() { 

        var state = document.readyState; 

        if (state == 'loaded' || state == 'complete') { 

         run(); 

        } else { 

         if (navigator.userAgent.indexOf('Browzr') > -1) { 

           setTimeout(run, 250); 

         } else { 

           document.addEventListener('deviceready',run,false); 
         } 
         } 
         } 

       function run() { 
        var imageUrl = "http://maps.google.com/maps/api/staticmap?sensor=false&center=" + latitude + ',' + longitude + 
        "&zoom=14&size=300x400&markers=color:blue|label:S|" + latitude + ',' + longitude; 
       console.log("imageUrl-" + imageUrl); 
       $("#map").remove(); 
       $(document.body).append(
        $(document.createElement("img")).attr("src", imageUrl).attr('id', 'map') 
       ); 

        var fail = function(e) { 
         alert('Can\'t retrieve position.\nError: ' + e); 
        }; 
        navigator.geolocation.getCurrentPosition(imageUrl, fail,{ enableHighAccuracy: true }); 
       } 

      </script> 
    </head> 
+0

你的代碼是什麼樣的? – wehal3001 2012-07-30 14:48:58

+0

用代碼編輯。 – user1521000 2012-08-01 12:24:41

+0

您需要在您的代碼中提供經緯度變量 – 2012-08-02 14:10:09

回答

2
/* enter code here */ function GetCurrentLocation() 
      { 
       if (navigator.geolocation) { 
        navigator.geolocation.getCurrentPosition(function(position) { 

                  var point = new google.maps.LatLng(position.coords.latitude, 
                           position.coords.longitude); 

                  // Initialize the Google Maps API v3 
                  var map = new google.maps.Map(document.getElementById('map'), { 
                          zoom: 16, 
                          center: point, 
                          mapTypeId: google.maps.MapTypeId.ROADMAP 
                          }); 

                  // Place a marker 
                  new google.maps.Marker({ 
                        position: point, 
                        map: map 
                        }); 
                  }); 
       } 
       else { 
        alert('W3C Geolocation API is not available'); 
       } 
      } 

使用該代碼,並設置傳感器=假上

希望它會有所幫助。請記住,它不是靜態地圖。

+0

是的,我發現這個地方,它的工作。所以我會接受你的答案,因爲它是正確的。 – user1521000 2012-08-10 11:25:36

0

您需要谷歌的Java腳本文件導入到你的解決方案

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 

然後可以使用下面這樣的代碼來顯示你的位置...剛剛替補您的經度和緯度

var imageUrl = "http://maps.google.com/maps/api/staticmap?sensor=false&center=" + latitude + ',' + longitude + 
     "&zoom=14&size=300x400&markers=color:blue|label:S|" + latitude + ',' + longitude; 
    console.log("imageUrl-" + imageUrl); 
    $("#map").remove(); 
    $(document.body).append(
     $(document.createElement("img")).attr("src", imageUrl).attr('id', 'map') 
    ); 
+0

我改變了我的代碼,你能檢查它是否正確嗎? 另外我讀到,你不需要谷歌地圖APIv3的關鍵。 很明顯,您演示的腳本中沒有一個。它是否正確? 因爲在某些檢查中我確實看到鑰匙已被使用。 – user1521000 2012-08-02 12:59:46

+0

是的,你不需要鑰匙,除非你需要它的某些谷歌服務 – 2012-08-02 13:58:54

+0

如果它工作,我會明天發佈。測試前必須做一些其他的事情。 – user1521000 2012-08-02 14:29:04