私は、ユーザーの位置(および移動)を表示し、毎秒更新するWebアプリケーションにGPS座標を送信するAndroidアプリケーションを作成しています。私はマップが同時に複数のユーザーの場所を表示して更新できるようにする必要がありますが、これを行う方法はわかりません。ユーザがボタンを押すと、その人を識別するための乱数が生成される。座標はIDと一緒にデータベースに絶えず送られます。マッププログラムは、AJAXを使用して毎秒場所を取得し、地図上の場所を更新します。これはすべて動作します。Googleマップで複数のポリラインを作成するデータベースから複数のIDを受信
私がする必要があるのは、プログラムが新しいIDを確認できるようにすることです。新しいIDがある場合は、そのユーザーの新しいポリラインを作成し、すべてのユーザーの場所をリアルタイムで更新し続けます。 JavaScriptにはクラスはありませんが、関数で作成することができます。以下は私のコードです。誰かが私を方向性で指し示すことができれば、主にどこで、どのようにこのクラスを作るのでしょうか?
function initialize() {
var myLatlng = new google.maps.LatLng(latitude, longitude);
var myOptions = {
zoom: 6,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var points = [];//new google.maps.LatLng(35, -75)];
$(function() {
$(document).ready(function(){
setInterval(function(){
$.ajax({
url: 'api.php', //the script to call to get data
data: "", //you can insert url arguments here to pass to api.php for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data){ //on recieve of reply
lati = data[1]; //get id
longi = data[2]; //get name
var myLatlngt = new google.maps.LatLng(lati, longi);
points.push(new google.maps.LatLng(lati, longi));
var polyline = new google.maps.Polyline({
map: map,
path: points,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyline.setMap(map);
//var image = 'icon.png';
var marker = new google.maps.Marker({
position: myLatlngt,
title:"Hello World!",
//icon: image
});
marker.setMap(map);
}
});
}, 1000);
});
});
「API、PHPは」データベースからタプルを引っ張るとlati = data[1]
が返される配列から抽出された緯度であるファイルです。
をポリラインを削除する
ポリラインは「成長中」のままです。基本的にデータベースからコードを取り出して追加することで、リアルタイムでユーザーを追跡して表示しますポリラインを構築し続けている配列(var points)に渡します。私は同時に複数のユーザーを追跡できる必要があります。 DB内の 'user1'を探してそのポリラインに追加し、 'user2'を探してそのポリラインを同時に構築することもできます。各ユーザーのために新しいオブジェクトをインスタンス化する場合と同様です。 – mkyong
次に、ユーザーごとに1つずつ複数のポリラインを描く必要があります。 – machineaddict
はい、他のものを削除せずにこれを行うにはどうすればよいですか? – mkyong