Javascript 如何将圆标记器的面积设置为与属性值成比例?

Javascript 如何将圆标记器的面积设置为与属性值成比例?,javascript,leaflet,geojson,area,Javascript,Leaflet,Geojson,Area,所以我在做一张传单地图。我使用的是一个json,它将国家列为Latlng点,以及它们相应的属性(称为CTH值)。我试图使用该值将这些板条点上的圆标记区域设置为与CTH值成比例,但我很难弄清楚如何设置 这是我写的 function addCTHValueMarkers () { CTHValueLayer = L.geoJSON(CTHValue, { pointToLayer: function (feature, latlng)

所以我在做一张传单地图。我使用的是一个json,它将国家列为Latlng点,以及它们相应的属性(称为CTH值)。我试图使用该值将这些板条点上的圆标记区域设置为与CTH值成比例,但我很难弄清楚如何设置

这是我写的

    function addCTHValueMarkers () {

       CTHValueLayer = L.geoJSON(CTHValue,  {
                    pointToLayer: function (feature, latlng) {
                        return new L.circleMarker(latlng, {
                        fillOpacity: 0.6,
                        radius: setRadius(feature.properties.CTHValue)
                       })
                    }
    });

   CTHValueLayer.addTo(map);
   }
我本来打算使用半径,但我需要面积使它们实际上成比例,有人能告诉我如何设置面积吗?我要做一个单独的函数来计算面积,然后把它传递给半径吗?我该怎么做


每当我试图在CTHValueLayer=L.geojson(CTHValue{})参数之外引用(feature.properties.CTHValue)时,它不起作用,有人能告诉我如何在单独的函数中从geojson中访问CTH值吗,因此,我可以将CTH值传递给面积计算

,因此您可能需要使用
L.circle
而不是
L.circleMarker

因为
circleMarker
它是一个标记,没有大小

这能回答你的问题吗?否:(我现在知道我必须使用面积而不是半径,但idk也知道如何使用。我尝试这样做:函数updatePropSymbols(){var props=(feature.properties.CTHValue);var radius=setRadius(props);}函数setRadius(props){var scaleFactor=0.01;var area=props*scaleFactor;return Math.sqrt(area/Math.PI);}但是我在控制台中收到一个错误,说“功能未定义”我想它的bc在我初始化json的一个单独的函数中,所以它不能识别feature.properties.CTHValue。那么我如何将我的json中的CTH值传递到radius函数中呢?嘿,请停止重复的问题!我想你现在在这个问题上已经到了6个了。我被卡住了,当我被卡住时被告知使用这个论坛??我被卡住了在最后期限。我试着自己去做,每次都用我想做的来更新。我不能继续前进,直到我做了这件事,我迫切需要继续前进。不;
L.Circle
s和
L.CircleMarker
s都有一个
半径(前者以米为单位,后者以CSS像素为单位)