AmCharts - 如何在地图多边形中设置纬度/经度?

3
基本上,我只想在用户定义的经度/纬度处画一个半径为X公里的圆。
因此,我通过查看文档了解到,无法更改已通过地理数据加载的地图多边形的经纬度,但我不确定如何创建具有指定经纬度的新地图多边形,或者是否可以这样做!
我的代码已设置好,每次用户单击某个位置时,都会相应地绘制或重新绘制标记,标记的位置是我想绘制圆形中心的位置。我明白使用getCircle函数需要对第三个变量进行km2deg转换,但我现在更关心的是位置。任何帮助都将是极好的!
以下是我的代码中的onclick方法。 https://codepen.io/kbreezy/pen/wLRrPq
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个回答

2
MapPolygon没有一些纬度/经度可以让你“移动”它。它的多边形必须包含你想要显示的区域的坐标。所以当你将经度/纬度传递给getCircle方法时,它会返回围绕该点的多边形。
我修改了你的笔记本,展示了这个概念: https://codepen.io/team/amcharts/pen/ydrLZw
polygon.multiPolygon = am4maps.getCircle(coords.longitude, coords.latitude, 5);

非常感谢你,你真是太棒了。说实话,我有点失望,因为这么简单的问题我发誓我已经尝试过了,但没关系哈哈,非常感谢你。 - kbreezy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接