Ответов: 9 Просмотров: 104
|
CODE ( javascript):
скопировать код в буфер обмена
var data = [ { "id":101, "areaCoordinates":"(59.818935, 30.381947)(59.875672, 30.353451)(59.883597, 30.346928)(59.89152, 30.346098)" }, { "id":102, "areaCoordinates":"(59.913644, 30.334597)(59.916139, 30.345411);(59.883597, 30.346928)(59.89152, 30.346098)" }, ]; var i, j, k, paths, coords, item, coordsBatch, pairs; for(i = 0; i < data.length; i++) { item = data[i]; coordsBatch = item.areaCoordinates.split(';'); for(j = 0; j < coordsBatch.length; j++) { pairs = coordsBatch[j].match(/([\-\d\.]+), ([\-\d\.]+)/g); paths = []; for(k = 0; k < pairs.length; k++) { coords = pairs[k].split(', '); paths.push(new google.maps.LatLng(coords[0], coords[1])); } var shape = new google.maps.Polygon({ paths: paths, strokeColor: '#ff0000', strokeOpacity: 0.8, strokeWeight: 1, fillColor: '#ff0000', fillOpacity: 0.25 }); } }
(Добавление)
pantela пишет:Как я понял косяк тут pairs = coordsBatch[j].match(/"[\d\.]+","[\d\.]+"/g); если понял - почему не исправил?
pantela пишет:Зачем мне match() тут вобще не ясно, думаю можно через split разбить... Или наверное и $.each использовать можешь хоть посимвольным перебором разбирать свои данные, это твои проблемы
матч - максимально быстрый способ с точки зрения написал и забыл |