GoMap JQuery плагин. Создание полилинии с координатами в файле JSON - PullRequest
1 голос
/ 15 февраля 2012

Добрый день, я пытаюсь передать координаты для двух отдельных полилиний из массива, поэтому массив заполняется из координат, содержащихся в файле JSON, просто я не могу использовать этот массив для фактического заполнения полилинии. координаты, он просто не отображается на карте - в консоли не обнаружено ошибок.

Я новичок в этом, поэтому, пожалуйста, будьте осторожны, вчера вечером был очень поздний вечер, пытаясь заставить это работать. Я использую последнюю версию плагина goMap jquery, я начинаю стремиться к ограничению в плагине, но, зная, что у меня нет навыков, это удар в темноте?

Любое руководство с благодарностью. Спасибо.

p.s Я собираюсь использовать другие свойства в файле JSON, цвет, идентификатор и т. Д. Для каждой полилинии, однако сначала мне нужно пройти этот этап :)

Соответствующее содержимое файла JSON выглядит следующим образом:

"lines" : 
[
    {"id":2011, "colour":"#00CC00", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.94036, "lng": 4.12734 },{ "lat": 54.05466, "lng": 13.78057 },{ "lat": 54.13938, "lng": 13.76870 },{ "lat": 52.40433, "lng": 13.18649 },{ "lat": 51.53493, "lng": 10.75077 },{"lat": 51.25631, "lng": 7.15687 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 51.94036, "lng": 4.12734}]
    },
    {"id":2010, "colour":"#3399FF", "weight":4, "opacity": 0.5, "coords":[ { "lat": 51.33761, "lng": 3.18406 },{ "lat": 50.82675, "lng": 2.18220 },{ "lat": 50.70592, "lng": 2.24091 },{ "lat": 51.18277, "lng": 3.20565 },{ "lat": 50.64371, "lng": 5.55140 },{ "lat": 50.45001, "lng": 5.95817 },{ "lat": 50.33386, "lng": 6.94722 },{ "lat": 50.31374, "lng": 6.96073 },{ "lat": 45.76458, "lng": 9.05604 },{ "lat": 45.55665, "lng": 9.05278 },{ "lat": 47.75976, "lng": 7.32900 },{ "lat": 48.65055, "lng": 6.14543 },{ "lat": 51.33761, "lng": 3.18406 }]
    }
]

Соответствующие аспекты сценария:

$.get('positions.json', function (data) {

            for (var i = 0, l = data.lines.length; i < l; i++) {
                var mypath = new Array();
                for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
                    var coords = data.lines[i].coords[j];
                    mypath.push(coords.lat, coords.lng);
                }

                $.goMap.createPolyline({
                    color: "#00CC00", opacity: 0.5, weight: 4, coords: mypath
                });

            }
        }, 'json');

1 Ответ

0 голосов
/ 16 февраля 2012

Это весь ваш файл json? Если это так, вам, вероятно, нужно начать файл с «{» и завершить его с «}», чтобы указать, что это объект javascript.

for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
                    var coords = data.lines[i].coords[j];
                    mypath.push(coords.lat, coords.lng);
                }

coords в каждой итерации будет {широта: хх, долгота: уу}, чего и ожидает createPolyline для массива. Изменение внутреннего цикла на приведенное ниже должно работать, хотя я этого не проверял.

for (var j = 0, k = data.lines[i].coords.length; j < k; j++) {
    mypath.push(data.lines[i].coords[j]);
}
...