読者です 読者をやめる 読者になる 読者になる

順次、選択、そして繰り返し

プログラミングのことやITのこと、たまに演劇のことも書きます。

GoogleMapsAPI リクエスト メモ

var directionsService;
var directionsDisplay = [];
/*緯度*/
var longitude = 35.7102849;

/*経度*/
var latitude = 139.77714030000004;

var map;

var allCount = 1;

var i = 0;

function initMap() {
    var mapdiv = document.getElementById('map');
    
    directionsService = new google.maps.DirectionsService();

    //オプション設定
    var myOptions = {
        zoom: 17,
        center: new google.maps.LatLng(longitude, latitude),
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scaleControl: true,
    };

    //マップを描画
    map = new google.maps.Map(mapdiv, myOptions);

    //マップ上に線を描く
    drawLine();

}

function drawLine() {
    
    var divisor = 100000;
    
    if(i == 500){
        return;
    }

    var originLatLng;
    // 経由地点を設定 
    var wayPoints = [];

    if (allCount != 1) {
        originLatLng = new google.maps.LatLng(longitude + allCount / divisor, latitude + allCount / divisor);
    } else {
        originLatLng = new google.maps.LatLng(longitude, latitude);
    }

    //waypoints作成
    for (var count = 1; count <= 20; count++) {

        wayPoints.push({
            location: new google.maps.LatLng(longitude + allCount / divisor, latitude + allCount / divisor)
        });

        allCount++;

    }

    var request = {
        origin: originLatLng, //入力地点の緯度、経度
        destination: new google.maps.LatLng(longitude + allCount / divisor, latitude + allCount / divisor), //到着地点の緯度、経度
        travelMode: google.maps.DirectionsTravelMode.WALKING, //ルートの種類
        waypoints: wayPoints
    }

    /* 描画 */
    directionsService.route(request, function (result, status) {
        directionsDisplay.push(new google.maps.DirectionsRenderer());
        directionsDisplay[directionsDisplay.length - 1].setDirections(result); //取得した情報をset
        directionsDisplay[directionsDisplay.length - 1].setMap(map); //マップに描画
    });
    
    i++;
    
    $("#count").empty();
    $("#count").append(i);
    
    setTimeout(function(){ 
        drawLine();
    }, 1000);
    


}