1

私は現在 Google マップに取り組んでおり、API からピンを「生成」したいと考えています。しかし、ピンは次のように見えるため、行き詰まります。

var imageDriver = 'marker.png';
var DriverLatLng = new google.maps.LatLng(location.lat, location.lng);
var driverMarker = new google.maps.Marker({
    position: DriverLatLng,
    map: map,
    icon: imageDriver,
    title: drivers[0].name
});
}

これらの変数を接頭辞で「生成」できる何らかの関数を作成したいと考えています。以下の例を確認してください。

var imageDriver0;
var DriverLatLng0;
var driverMarker0;
position: DriverLatLng0,
map: map,
icon: imageDriver0,
title: drivers[o].name

もちろん、これらの変数は「衝突」しないように一意である必要があります。API 内のすべての「ドライバー」をカウントするこの for ループがあります。これらのピンを作成するために、どうにかしてこの for ループを作成できますか? 例:

    driversRealtime();
function driversRealtime() {
    setInterval(function () {
        var url = "http://blackcab.didair.se/api/drivers";
        var lat;
        var lon;
        var name;
        var id;
        $.getJSON(url,

        function (response) {
            for (var i = 0; i < response.drivers.length; i++) //Counts data-elemements inside 
                lat = response.drivers[i].currentLat;
                lon = response.drivers[i].currentLon;
                name = response.drivers[i].name;
                id = response.drivers[i].profileId;
            console.log(lat);
            console.log(lon);
            console.log(name);
            console.log(id);
        });
    }, 3000); //Delay in milliseconds
}
4

1 に答える 1

4

変数名を動的に作成することは可能ですが、ほとんどの場合無意味です。

代わりに配列または接尾辞を使用し、値をプロパティとして配列内のオブジェクトに配置します。例:

var points = [];

var point = {
  "url": url,
  "lat": lat,
  "lng": lng,
  "name": name,
  "id": id
};
points.push(point);
于 2013-04-09T06:39:00.537 に答える