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