在小叶/ svg多边形上绘制

时间:2018-01-18 16:18:47

标签: html canvas svg leaflet gradient

我目前正在传单中实现一个地图,其中包含大约100个左右的多边形。我的问题是我需要使用一种算法来绘制多边形(或替换它们),该算法确定多边形中每个点的颜色;目前是一种隔离的反距离加权算法(IDW),用于在多边形内生成孤立的热图。

为了说明,请考虑绘制类似的内容:

https://cdn.dribbble.com/users/1376/screenshots/81962/shot_1290433321.png

- 在多边形内。

现在,你会怎么做?

请注意,一旦添加到传单中,一个Polygon会生成一个类似于以下内容的svg:

<g>

  <path class="leaflet-interactive" 
    stroke="#3388ff" 
    stroke-opacity="1" 
    stroke-width="3" 
    stroke-linecap="round" 
    stroke-linejoin="round" 
    fill="#3388ff" 
    fill-opacity="0.2" 
    fill-rule="evenodd" 
    d="M515 304L515 347L160 684L160 304z">
  </path>

  <path class="leaflet-interactive" 
    stroke="#3388ff" 
    stroke-opacity="1" 
    stroke-width="3" 
    stroke-linecap="round" 
    stroke-linejoin="round" 
    fill="#3388ff" 
    fill-opacity="0.2" 
    fill-rule="evenodd" 
    d="M515 304L515 347L160 684L160 304z">
</path>

</g>

1 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是为地图创建一个svg wchar_t dir[_MAX_DIR] = {0}; wchar_t drive[_MAX_DRIVE] = {0}; wchar_t fname[_MAX_FNAME] = {0}; wchar_t ext[_MAX_EXT] = {0}; errno_t err; std::wstring path = L"c:\\this\\is\\a\\test.exe"; err = _wsplitpath_s(path.c_str(),&drive[0],_MAX_DRIVE,&dir[0],_MAX_DIR,&fname[0],_MAX_FNAME,&ext[0],_MAX_EXT); 元素。将svg多边形元素放入组中。然后直接在这些标准的svg多边形元素上运用你的魔法。 要创建此svg <g>,请使用:L.svg()。addTo(map);

RE:我仍然完全迷失了如何在其中一条路径中“画画”

使用多边形(或路径)点创建svg clipPath元素。然后在要剪辑的图像上包含剪辑路径属性