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