最初に自問する必要があるのは、この座標をローカルに保存するのか、WAMPサーバーに保存するのかということだと思います。
ローカルでのみ必要な場合は、ローカルのSharedObjectを使用するのが簡単なオプションです(たとえば、イベントを受け取った日付をキーとして新しい位置を保存できます)。本当にローカルデータベースを使用したい場合は、次のようなサービスを使用できます。
package
{
import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.SQLEvent;
public class DatabaseService extends EventDispatcher
{
public var conn:SQLConnection;
public function DatabaseService()
{
conn = new SQLConnection();
conn.addEventListener(SQLEvent.OPEN, handleConnectionSuccess);
conn.openAsync(null);
}
public function addCoordinates(lat:String, long:String):void
{
var insertStmt:SQLStatement = new SQLStatement();
insertStmt.sqlConnection = conn;
var sql:String = "INSERT INTO coordinates (latitude, longitude)" +
" VALUES (" + lat + ", " + long + ")";
insertStmt.text = sql;
insertStmt.addEventListener(SQLEvent.RESULT, handleInsertionResult);
insertStmt.execute();
}
private function createTable():void
{
var createStmt:SQLStatement = new SQLStatement();
createStmt.sqlConnection = conn;
var sql:String = "CREATE TABLE IF NOT EXISTS coordinates " +
"( coordId INTEGER PRIMARY KEY AUTOINCREMENT, latitude TEXT, longitude TEXT)";
createStmt.text = sql;
createStmt.addEventListener(SQLEvent.RESULT, handleTableCreationResult);
createStmt.execute();
}
private function handleConnectionSuccess(event:SQLEvent):void
{
createTable();
}
private function handleTableCreationResult(event:SQLEvent):void
{
dispatchEvent(new Event(Event.COMPLETE));
}
private function handleInsertionResult(event:SQLEvent):void
{
var stmt:SQLStatement = event.target as SQLStatement;
stmt.removeEventListener(SQLEvent.RESULT, handleInsertionResult);
trace ("Coordinates are saved in DB");
}
}
}
その後、GPSイベントを受信するたびにこのサービスに電話をかけることができます。
protected function onUpdate(event:GeolocationEvent):void
{
trace("Update event called");
gpsTableService.addCoordinates(event.latitude, event.longitude);
}
gpsTableService
のインスタンスはどこにありますかDatabaseService
。
サーバーでこの情報を送信する必要がある場合は、リクエストを処理するためのPHPスクリプトを作成する必要があります。このスクリプトは、データベース管理、つまりデータをデータベースに保存する役割を果たします。URLVariable
Flashアプリケーションからこのスクリプトを呼び出すには、ユーザーを、、、URLRequest
およびにする必要がありますURLLoader
。