amcharts-如何在m​​appolygon中设置经度/纬度?

时间:2019-07-09 18:31:40

标签: javascript maps amcharts

基本上,我只想绘制一个半径为X km的用户定义的经度/纬度圆。

因此,我意识到浏览文档时无法更改已经通过地理数据加载的mappolygon的纬度/经度,但是我想我不太确定如何使用指定纬度来创建新的地图多边形/ lon,或者我什至可以做到!

设置我的代码,以便每当用户单击某个位置相应地绘制或重新绘制标记时,标记的位置就是我要绘制圆心的位置。使用getCircle函数,我需要为第三个变量进行整个km2deg的设置,但是我现在更关心的是位置。任何帮助都会很棒!

https://codepen.io/kbreezy/pen/wLRrPq

下面是我的代码的onclick方法。

chart.seriesContainer.events.on("hit", function(ev) {
  var lp = $("#chartdiv").data("point");
  var coords = chart.svgPointToGeo(ev.svgPoint);

  if (lp) {
      lp.latitude = coords.latitude;
      lp.longitude = coords.longitude;
  } else {
    var marker = imageSeries.mapImages.create();
    marker.latitude = coords.latitude;
    marker.longitude = coords.longitude;
  }
  $("#chartdiv").data("point", marker);


  var circleSeries = chart.series.push(new am4maps.MapPolygonSeries())
    var circleTemplate = circleSeries.mapPolygons.template;
    circleTemplate.fill = am4core.color("#bf7569");
    circleTemplate.strokeOpacity = 1;
    circleTemplate.fillOpacity = 0.75;


  var polygon = circleSeries.mapPolygons.create();
  var mapPolygon = polygonSeries.getPolygonById("DE");
  mapPolygon.setPropertyValue('latitude', coords.latitude);
  mapPolygon.setPropertyValue('longitude', coords.longitude);
  polygon.latitude = coords.latitude;
  polygon.longitude = coords.longitude;
  polygon.multiPolygon = am4maps.getCircle(mapPolygon.visualLongitude, mapPolygon.visualLatitude, 5);


//polygon.multiPolygon = am4maps.getCircle(coords.latitude, coords.longitude, 5);

});

1 个答案:

答案 0 :(得分:1)

MapPolygon没有可以“移动”它的某些纬度/经度。它的多边形必须包含要显示的区域的坐标。因此,当您将经度/纬度传递给getCircle方法时,它将在该点附近返回multiPolygon。

我修改了您的笔在哪里显示概念:https://codepen.io/team/amcharts/pen/ydrLZw

polygon.multiPolygon = am4maps.getCircle(coords.longitude, coords.latitude, 5);