javascript — симуляция линий Ammap из внешнего файла JSON

Я пытаюсь вставить внешние данные JSON в мое ammap с помощью dataLoader и использовать эти данные для анимации строк в postProcess на карте ammap

 var map = AmCharts.makeChart("chartdiv", {
"type": "map",
"theme": "light",
"dataLoader": {
"url": "/directory_to_json_file/json_file.json",
"postProcess": function(data) {
var dataProvider = {
"map": "worldLow"};
}
},
...
}

я хочу вставить файл json после загрузки карты worldLow и добавить широту и долготу линий и анимацию из внешнего файла json.

json_file

{
map: "worldLow",
getAreasFromMap: true,
linkToObject: "london",
images: [{
id: "london",
color: "#000000",
type: "circle",
title: "London",
latitude: 51.5002,
longitude: -0.1262,
scale: 1.5,
zoomLevel: 1.74,
lines: [{
latitudes: [51.5002, 37.483577],
longitudes: [-0.1262, -89.824219]
}]
},
{
svgPath: pcSVG,
title: "London",
latitude: 51.5002,
longitude: -0.1262
},
{
svgPath: pcSVG,
title: "Prague",
latitude: 37.483577,
longitude: -89.824219
}

]
}

это предупреждает об ошибке.

0

Решение

Помимо цитирования ваших свойств, вы не можете передавать переменные в ваш JSON. Вам нужно расширить экземпляры pcSVG SVG-строка, которую представляет переменная. Используя целевой SVG из анимация через строки демо:

{
"map": "worldLow",
"getAreasFromMap": true,
"linkToObject": "london",
"images": [{
"id": "london",
"color": "#000000",
"type": "circle",
"title": "London",
"latitude": 51.5002,
"longitude": -0.1262,
"scale": 1.5,
"zoomLevel": 1.74,
"lines": [{
"latitudes": [51.5002, 37.483577],
"longitudes": [-0.1262, -89.824219]
}]
}, {
"svgPath": "M9,0C4.029,0,0,4.029,0,9s4.029,9,9,9s9-4.029,9-9S13.971,0,9,0z M9,15.93 c-3.83,0-6.93-3.1-6.93-6.93S5.17,2.07,9,2.07s6.93,3.1,6.93,6.93S12.83,15.93,9,15.93 M12.5,9c0,1.933-1.567,3.5-3.5,3.5S5.5,10.933,5.5,9S7.067,5.5,9,5.5 S12.5,7.067,12.5,9z",
"title": "London",
"latitude": 51.5002,
"longitude": -0.1262
}, {
"svgPath": "M9,0C4.029,0,0,4.029,0,9s4.029,9,9,9s9-4.029,9-9S13.971,0,9,0z M9,15.93 c-3.83,0-6.93-3.1-6.93-6.93S5.17,2.07,9,2.07s6.93,3.1,6.93,6.93S12.83,15.93,9,15.93 M12.5,9c0,1.933-1.567,3.5-3.5,3.5S5.5,10.933,5.5,9S7.067,5.5,9,5.5 S12.5,7.067,12.5,9z",
"title": "Prague",
"latitude": 37.483577,
"longitude": -89.824219
}]
}

демонстрация

Также обратите внимание, что вам не нужно postProcess обратный вызов, если вы возвращаете правильный объект dataProvider карты. postProcess требуется только в том случае, если вы возвращаете что-то несовместимое и вам необходимо преобразовать ваши данные в то, что понимает библиотека карт, поэтому ваши postProcess звонить не нужно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector