2

同時に複数の多角形 (円) を表示するためにGoogle Earth プラグインを使用しています。これを行うにはどうすればよいですか?, lat またはgeoDataSplit[0]および lng またはのgeoDataSplit[1]リストボックスがあります。 polygonplacemark 、すべての円を配列に格納するか、提案してすべてを表示するかを保存します。以下のコードは、すべての円を1つずつ印刷しますが、すべてを同時に印刷するわけではありません。

var setOfPlacemarks = [];
function createCircle(centerLat, centerLng, radius) {

    function make2Circle(centerLat, centerLng, radius) {

        var ring = ge.createLinearRing('');
        var steps = 25;
        var pi2 = Math.PI * 2;
        for (var i = 0; i < steps; i++) {
            var lat = parseFloat(centerLat) + radius * Math.cos(i / steps * pi2);
            var lng = centerLng + radius * Math.sin(i / steps * pi2);
            ring.getCoordinates().pushLatLngAlt(lat, lng, 0);

        }
        return ring;
    }

    var polygonPlacemark = ge.createPlacemark('');
    polygonPlacemark.setGeometry(ge.createPolygon(''));
    var outer = ge.createLinearRing('');

    var dlist = document.getElementById('salesList');
        for (var i = 0; i < dlist.options.length; i++) {

            var geoData = dlist.options[i].text;
            geoDataSplit = geoData.split(",");
            polygonPlacemark.getGeometry().setOuterBoundary(make2Circle(parseFloat(geoDataSplit[0]), parseFloat(geoDataSplit[1]), .00001*parseInt(geoDataSplit[2])/5));
            polygonPlacemark.setName(geoDataSplit[2]);

            ge.getFeatures().appendChild(polygonPlacemark);
            setOfPlacemarks.push(polygonPlacemark);
        }
        printAllPlacemarks();
}

function printAllPlacemarks() {

    var kmlObjectList = ge.getFeatures().getChildNodes();
    alert(kmlObjectList);
    for (var i = 0; i < setOfPlacemarks.length; i++) {
        alert(setOfPlacemarks[i]);
        ge.getFeatures().appendChild(setOfPlacemarks[i]);
    }
}
4

0 に答える 0