amcharts4 получает элементы карты для ссылки на URL с помощью свойства polygon - PullRequest
1 голос
/ 06 апреля 2019

Следующее (пока вызов core.js, maps.js, animated.js и контекстный countryLow.js файл визуализируют карту с полигонами областей (или административных районов):

var chart = am4core.create("chartdiv", am4maps.MapChart);
chart.geodata = am4geodata_franceLow;
chart.projection = new am4maps.projections.Miller();

var polygonSeries = chart.series.push(new am4maps.MapPolygonSeries());
polygonSeries.useGeodata = true;
polygonSeries.applyOnClones = true;
polygonSeries.fill = am4core.color("#a791b4");
polygonSeries.fillOpacity = 0.8; 
polygonSeries.strokeOpacity = 0.3;

var regionTemplate = polygonSeries.mapPolygons.template;
regionTemplate.tooltipText = "{name}";
regionTemplate.properties.fillOpacity = 0.8; 
regionTemplate.propertyFields.fill = "color";
regionTemplate.propertyFields.url = "url";
regionTemplate.columns.template.url = "http://localhost:3000/go/cities?region_id={properties.id()}"

Пока раскрывается всплывающая подсказка, как заставить полигон быть кликабельным при передаче значения идентификатора полигона в качестве параметра URL-адресу?

Ответы [ 3 ]

4 голосов
/ 08 апреля 2019

Просто напишите ноль в коде Javascript вместо машинописного текста, и у вас не будет ошибки;

regionTemplate.url = "http://www.amcharts.com/";
regionTemplate.adapter.add("url", function(url, target) { return url + "?id=" + target.dataItem.dataContext.id; }):
2 голосов
/ 16 апреля 2019

Вы можете использовать заполнители в URL. Например ::1003*

regionTemplate.url = "http://localhost:3000/go/cities?region_id={id.urlEncode()}"

Демо-версия:

https://codepen.io/team/amcharts/pen/30dc8cb2bcdef6a2d5f11d41db1e58a1

2 голосов
/ 07 апреля 2019

Вы можете использовать адаптер для изменения исходного URL, например:

regionTemplate.url = "http://www.amcharts.com/";
regionTemplate.adapter.add("url", (url, target)=>{
   return url + "?id=" + target.dataItem.dataContext.id;
})
...