0

自分の位置を取得してGoogleマップに表示する必要があるアプリを作りたいです。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= (ここにキーを配置します) の後にキーを配置します。アプリを起動すると、CMD を使用して座標を送信します。Telnet Localhost 5554、ジオフィックスなど。アプリを起動すると、次のエラーが表示されます: Cant retrieve position Error[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>
4

2 に答える 2

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');
                }
            }

このコードを使用して、sensor=falseをオンに設定します

それがお役に立てば幸いです。静的マップではないことに注意してください。

于 2012-08-08T13:07:12.283 に答える
0

Google 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')
    );
于 2012-08-02T09:35:13.553 に答える