@maxprof
Студент

Как реализовать цикл?

Здравствуйте, помогите реализовать цикл пожалуйста.
Есть Файл JSON :
{"stops" : [{"zoneId":"5522bdb1e4b047df5b5b7afa","coords"
:[[[49.25100320801442,28.541126489672024],
[49.25156346163994,28.542151093515713],
[49.25113626882619,28.542376399072964],
[49.25074759018555,28.541657567056973],
[49.25076509829823,28.54119622710641],
[49.25100320801442,28.541126489672024]]],"name":"Ватутина","description":""}

Мне нужны данные из массива coords, и так я к ним обращаюсь:
request.open('GET', 'zones.json');
            request.onreadystatechange = function() {
              if ((request.status === 200) &&
                (request.readyState === 4)) {
                  info = JSON.parse(request.responseText);
                  console.log(info.stops[0].coords[0][0]);


Как реализовать цикл, чтобы он брал данные из под массивов массива "coords" и вставлял их в карту гугл в места new google.maps.LatLng

function initialize_map( ) {
     var latlng = new google.maps.LatLng(info.stops[0].coords[0][0]);
     var myOptions = {
     zoom: 18,
     center: latlng,
     mapTypeId: google.maps.MapTypeId.ROADMAP
     };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    var polygonCoords = [
      new google.maps.LatLng(49.25156346163994,28.542151093515713),
      new google.maps.LatLng(49.25113626882619,28.542376399072964),
      new google.maps.LatLng(49.25074759018555,28.541657567056973),
      new google.maps.LatLng(49.25076509829823,28.54119622710641),
      new google.maps.LatLng(49.25100320801442,28.541126489672024)
     ];
     var polygon = new google.maps.Polygon({
      path: polygonCoords,
      strokeColor: "#5196DB",
      strokeOpacity: 1,
      strokeWeight: 2,
      fillColor: "#8ab9e7",
      fillOpacity: 0.5
     });
     polygon.setMap(map);   
     return map;
   }

Заранее большое спасибо!
  • Вопрос задан
  • 200 просмотров
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
var raw = info.stops[0].coords[0][0],
    coords = [];

for (var i = 0, line; i < raw.length; i++) {
    line = raw[i];
    coords.push(new google.maps.LatLng(line[0], line[1]));
}

// в итоге в вашей функции
var polygonCoords = cords;


Как то так
Ответ написан
copal
@copal
𝄞 ...оооо baby
var json = {
	"stops" : [{
		"zoneId":"5522bdb1e4b047df5b5b7afa",
		"coords":[[
			[49.25100320801442,28.541126489672024],
			[49.25156346163994,28.542151093515713],
			[49.25113626882619,28.542376399072964],
			[49.25074759018555,28.541657567056973],
			[49.25076509829823,28.54119622710641],
			[49.25100320801442,28.541126489672024]
		]],
		"name":"Ватутина",
		"description":""
	}]
};

var polygonCoords = [];
var coords = json.stops[0].coords[0],
	length = coords.length,
	point,
	POSITION_X = 0,
	POSITION_Y = 1;

for(var i = 0; i < length; i++){
	point = coords[i];

	console.log(point[POSITION_X],point[POSITION_Y]);
	// new google.maps.LatLng(point[POSITION_X],point[POSITION_Y]);
}

function initialize_map( ) {
     var latlng = new google.maps.LatLng(info.stops[0].coords[0][0]);
     var myOptions = {
     zoom: 18,
     center: latlng,
     mapTypeId: google.maps.MapTypeId.ROADMAP
     };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var polygonCoords = [];
     //  ниже, я сохранил ссылку на json в свойство json,
     //  но как видно из Вашего кода, он у Вас называется info
     //  по этому я закоментирую свою строчку и оставлю Вашу.
    // var coords = info.stops[0].coords[0],
    var coords = info.stops[0].coords[0],

      length = coords.length,
      point,
      POSITION_X = 0,
      POSITION_Y = 1;

    for(var i = 0; i < length; i++){
      point = coords[i];

      polygonCoords.push(new google.maps.LatLng(point[POSITION_X],point[POSITION_Y]));
    }
    
     var polygon = new google.maps.Polygon({
      path: polygonCoords,
      strokeColor: "#5196DB",
      strokeOpacity: 1,
      strokeWeight: 2,
      fillColor: "#8ab9e7",
      fillOpacity: 0.5
     });
     polygon.setMap(map);   
     return map;
   }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час