1

Cordova 2.0.0 向けに開発しています。Android 2.2でアプリをテストしています。これで、ユーザーの位置を取得し、それをマーカー付きの Google マップに表示するためのコードを取得しました。最初に地理位置情報コードを取得し、Google マップに表示します。

> function onLoad() { document.addEventListener("deviceready",
> onDeviceReady, false); }
> 
> function onDeviceReady() {
> 
> }
> 
> var onSuccess = function(position) {
>     var myLat = position.coords.latitude;
>     var myLong = position.coords.longitude;
> 
>     
>     var mapOptions = {
>         center: new google.maps.LatLng(myLat, myLong),
>         zoom: 14,
>         mapTypeId: google.maps.MapTypeId.ROADMAP
>     };
> 
> var map = new google.maps.Map(document.getElementById("map_canvas"),
>                                   mapOptions);
> 
>     var marker = new google.maps.Marker({
>                                    position: new google.maps.LatLng(myLat, myLong),
>                                         map: map,
>                                         title:"Hello World!"
>                                         });
> 
> };
> 
> 
> function onError(error) {
>     alert('code: '    + error.code    + '\n' +
>           'message: ' + error.message + '\n'); }
> 
> 
> 
> navigator.geolocation.getCurrentPosition(onSuccess, onError,
>       {'enableHighAccuracy':true,'timeout':10000});

私のデータベースのコードは、http://docs.phonegap.com/en/2.0.0/cordova_storage_storage.md.html#Storageの例を使用しました:

> <!DOCTYPE html> <html>   <head>
>     <title>Storage Example</title>
>     <script type="text/javascript" src="jqtouch/jquery.js" charset="utf-8"></script>
>     <script type="text/javascript" src="jqtouch/jqtouch.js" charset="utf-8"></script>
>     <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
>     <script type="text/javascript" charset="utf-8">
> 
>     // Wait for Cordova to load
>     //
>     document.addEventListener("deviceready", onDeviceReady, false);
> 
>     // Populate the database 
>     //
>     function populateDB(tx) {
>         tx.executeSql('DROP TABLE IF EXISTS DEMO');
>         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, longitude, latitude)');
>         tx.executeSql('INSERT INTO DEMO (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, longitude, latitude);
>     }
> 
>     // Query the database
>     //
>     function queryDB(tx) {
>         tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
>     }
> 
>     // Query the success callback
>     //
>     function querySuccess(tx, results) {   console.log("Returned rows = " + results.rows.length);   if (!results.rowsAffected) {
>     console.log('No rows affected!');
>     return false;   }   // for an insert statement, this property will return the ID of the last inserted row   console.log("Last inserted
> row ID = " + results.insertId);
>     }
> 
>     // Transaction error callback
>       function errorCB(err) {
>        console.log("Error processing SQL: "+err.code);
>     }
> 
>     // Transaction success callback
>    
>     function successCB() {
>         var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
>         db.transaction(queryDB, errorCB);
>     }
> 
>     // Cordova is ready
>     //    function onDeviceReady() {
>         var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
>         db.transaction(populateDB, errorCB, successCB);
>     }
> 
>     </script>   </head>   <body>
>     <h1>Example</h1>
>     <p>Database</p>   </body> </html>

GPS (地理位置情報) から取得する経度/緯度の値をデータベースに入れる方法がわかりません。チュートリアル、サンプルコード、またはアドバイスは大歓迎です。

私はこのようなものの長い行を考えていました:

> //GEOLOCATION 
>     var onSuccess = function(position) {
>     var myLat = position.coords.latitude;
>     var myLong = position.coords.longitude;
>     insertEntry(latitude, longitude);
>     //MAP
> 
> 
> function insertEntry(latitude, longitude) {
>     db.transaction(
>         function(populateDB) {
>             tx.executeSql(
>                 'INSERT INTO entries (latitude, longitude) ' + 
>                     'VALUES (?, ?);',
>                 [latitude, longitude],
>                 function(){
>                    }, 
>                 errorHandler
>             );
>         }
>     );
4

1 に答える 1

1

データベースを開く必要があります。

var db = window.openDatabase("dbName", "1.0", "Db Name", 100000);

それから

db.transaction(
     function(populateDB) 
        .....

Phonegap ストレージのドキュメントを確認してください。

于 2012-09-18T21:31:49.390 に答える