1

エミュレータ (ターゲット 2.2) で地理位置情報を機能させるためにあらゆることを試しました。telnet を使用し、「geo fix」に続いて経度と緯度を発行しました。Android マニフェストを編集して許可を与えましたが、現在地を中心とした Google マップが表示されない理由がわかりません。マップの setcentered 関数に座標を入力しても、座標を入力しても表示されません。これは私が何時間も調べてきたコードです:

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyBrnId8UIeAeDTMr2sVi-g86izgdb2KhVo&sensor=true"
type="text/javascript"></script>
<script type="text/javascript">
// Wait for PhoneGap to load
// PhoneGap is ready
document.addEventListener("deviceready", onDeviceReady, false);
navigator.geolocation.getCurrentPosition(geolocationSuccess, [maximumAge: 3000, timeout:          5000, enableHighAccuracy: 
<!--position.coords.latitude-->
initialize() 
(GBrowserIsCompatible()) 
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(position.coords.latitude,position.coords.longitude), 13)
map.setUIToDefault();
// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
}
}      
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
</body>
</html> 

事前にありがとう、私はこれを何時間も解決しようとしてきました.Googleマップが表示されるようにする必要があり、Googleマップの中心は私の場所です.

4

2 に答える 2

0
/*enter code here*/ function handle_errors(error)
    {
        switch(error.code)
        {
            case error.PERMISSION_DENIED: alert("user did not share geolocation data");
            break;

            case error.POSITION_UNAVAILABLE: alert("could not detect current position");
            break;

            case error.TIMEOUT: alert("retrieving position timedout");
            break;

            default: alert("unknown error");
            break;
        }
    }

    function handle_geolocation_query(position) {  
        var text = "Latitude: "  + position.coords.latitude  + "<br/>" +  
        "Longitude: " + position.coords.longitude + "<br/>" +  
        "Accuracy: "  + position.coords.accuracy  + "m<br/>" +  
        "Time: " + new Date(position.timestamp);  
        //$("#info").html(text); 

        // alert(text);

        var image_url ='';
        image_url = "http://maps.google.com/maps/api/staticmap?path=color:0x0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963&zoom=14&size=260x300&sensor=true";


        $("#info").slideUp('slow');
        $("#map").slideDown('slow');

        $('#map').html('<img src="'+image_url+'" />');

    } 

/*enter code here*/<a class="request_appoint_ment" href="javascript:void(0);" data-transition="none" id="btnInit">Mark Vehicle Location</a>


/*enter code here*/<div id="info" style="display:none;"><img src="images/ajax-loader.gif" style="padding:50px 0 50px 100px;" /></div>
                    <div id="map" style="display:none; padding-bottom:20px;"></div>


/*enter code here*/$( '#btnInit' ).live( 'click',function(event){
                         $("#map").slideUp('slow');
                         $("#info").slideDown('slow');
                         $('#markmaptype').val(1);
                         initiate_watchlocation();
                         });

このコードを使用してください、それは私のために働いています

于 2012-07-26T11:36:52.890 に答える
0

これが私の簡単な観察のいくつかです。PhoneGap が初期化されたときに呼び出される onDeviceReady 関数を定義していないようです。以下は、PhoneGap のドキュメントから onDeviceReady を使用する方法を示す PhoneGap サンプル コードのコピーです。

onDeviceReadyこのコードが、PhoneGap メソッドを安全に呼び出すことができるとコメントに記載 されている関数がどのように定義されているかがわかりますか。

また、PhoneGap JavaScript をロードしていないよう<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>です。

<!DOCTYPE html>
<html>
  <head>
    <title>PhoneGap Device Ready Example</title>

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

    // Call onDeviceReady when PhoneGap is loaded.
    //
    // At this point, the document has loaded but phonegap-1.0.0.js has not.
    // When PhoneGap is loaded and talking with the native device,
    // it will call the event `deviceready`.
    // 
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap is loaded and it is now safe to make calls PhoneGap methods
    //
    function onDeviceReady() {
        // Now safe to use the PhoneGap API
    }

    </script>
  </head>
  <body>
  </body>
</html>

また、コードを詳しく見てみると、GBrowserIsCompatible()正しく使用していません。ifステートメント内でこの関数呼び出しを使用する必要があります。

コードを次のように変更します。

<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript">
    // Wait for PhoneGap to load
    // PhoneGap is ready
    document.addEventListener("deviceready", onDeviceReady, false);
    <!--position.coords.latitude-->
    function onDeviceReady() {
       if (GBrowserIsCompatible()) {
           navigator.geolocation.getCurrentPosition(geolocationSuccess, [maximumAge: 3000, timeout: 5000, enableHighAccuracy: // some code is missing here!
           map = new GMap2(document.getElementById("map_canvas"));
           map.setCenter(new GLatLng(position.coords.latitude,position.coords.longitude), 13)
           map.setUIToDefault();
           // Add 10 markers to the map at random locations
           var bounds = map.getBounds();
           var southWest = bounds.getSouthWest();
           var northEast = bounds.getNorthEast();
           var lngSpan = northEast.lng() - southWest.lng();
           var latSpan = northEast.lat() - southWest.lat();
       } else {
           // add code here to display error that device is not compatible
       }
    }      
</script>
</head>
    <body onunload="GUnload()">
于 2012-07-25T15:53:29.703 に答える