【问题标题】:Color Outer Boundaries by css for a map Region通过 css 为地图区域着色外部边界
【发布时间】:2016-01-04 14:17:34
【问题描述】:

是否有可能通过 css 在 Map 上对区域进行不同的着色?我找不到相关的帖子

我有这样的地图部分:

如您所见,该区域包含五个子区域。每个子区域边界都是红色。我只需要使外部边界(接触大海)为黑色

这里是相关代码:

对于外部区域

            mapdata.parentId = "c0";

            mapdata.name = a;
            mapdata.title = "Arron";
            mapdata.cName = "_21";            **<--Class Name**  
            mapdata.zoom = 0;
            mapdata.backUrl = "?v=arron&d=" + d;

            //get all arrondisments
            using (var query = new SiteAdminQuery())
            {
                DrawSingleArrondissment(a, query, paths);

                if (showCity)
                {
                    DrawAllCitiesForSelectedArrondissment(d, a, query, paths, false, true);
                }
            }

                mapdata.paths = paths.OrderByDescending(x => x.BoundaryDisplayOrder).ToArray();
            }

对于内部区域:

  key = arrondissementSetUp.arrndsId.ToString(),
                    type = "a",
                    mType = string.Format("{0}: {1}", HEM.Resources.Globals.arrnds, arrondissementSetUp.name),
                    url = string.Format("?v={0}&d={1}&a={2}", "arron", arrondissementSetUp.deptId, arrondissementSetUp.arrndsId),

                   cName = "_New21",      **<--Class Name**

                    path = arrondissementSetUp.mainViewPathId.ToString(),
                    BoundaryDisplayOrder=3

这是区域的 css :

._21 {
    fill: #ffff7d;
     stroke: #000000;
    stroke-width: 1;
}

  .New_21{
    fill: #ffff7d;
     stroke: #d10909;
    stroke-width: 1;
}

我尝试使用 .class:After Property ,但这不起作用。

我在这篇文章中找到了例子

CSS Outside Border

http://jsfiddle.net/A2tu9/191/

我用

之类的关键字搜索谷歌

“css:设置外边界/边框颜色”,“css:设置内边界/边框”,等等.. 但找不到任何好的 Post 。这些区域是使用地图坐标创建的,所以我无法发布整个代码..

如果需要任何其他资源,请告诉我。我会发帖的

还请建议这件事是否可以通过任何其他技术发生

【问题讨论】:

    标签: html css


    【解决方案1】:

    所以看起来你的省份是由 SVG 绘制的。没有一个属性可以做你需要做的事情。相反,您需要做的是在绘制出各个区域之后,您需要再次将整个岛绘制为单个 SVG 元素(即一个实体形状,即整个岛的形状,忽略各个区域),并且设置fill: transparent; stroke:black;

    因为您是在之后绘制它,所以它将位于现有岛屿的顶部,黑色边框将覆盖外面的红色边框。

    【讨论】:

    • 我这样做了,但是当鼠标悬停时,它悬停在外部区域,这是错误的,我需要悬停在较小的区域
    • 您没有在帖子中说您必须将鼠标悬停在所有内容上,因此您必须为不清晰的地方辩解。但是,解决方案很简单:在 DOM 中,将 DOM 中的省份移动到比轮廓更低的位置。即:
    • 好的,我错过了,但是根据你的解决方案,在 DOM 中移动元素是一个临时修复,不是吗?
    • 另一种选择是将整个区域的 CSS 属性设置为 pointer-events:none
    猜你喜欢
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多