首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用GMap的情况下使用GPolygon绘制多边形

在不使用GMap的情况下使用GPolygon绘制多边形
EN

Stack Overflow用户
提问于 2010-09-20 19:17:34
回答 2查看 2.8K关注 0票数 2

有人知道我如何在没有地图的情况下,在其他元素中使用GPolygon从Google map绘制多边形吗?或者有谁知道有什么框架可以用像GPolygon这样的相同功能来做这件事?

我希望在自定义元素上有这个"draw polygon“,比如div:

代码语言:javascript
复制
<div id="MyArea"></div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-20 19:31:48

查看Raphael,这是一个javascript库,在IE中封装了VML,在兼容标准的浏览器中封装了SVG。它非常容易使用,并且在documented方面做得很好。

当然,path元素(用于绘制多边形和折线)使用了SVG path string syntax,它有点晦涩,但很容易理解。当然,您可以扩展Raphael以使用更简单的语法:

代码语言:javascript
复制
Raphael.fn.polygon = function () { // supply x,y coordinates as arguments
    var self = this.path();
    self.coords = [];
    for (var i=0;i<arguments.length;i++) self.coords.push(arguments[i]);

    self.update = function () {
        var pathlist = [];
        // the M command moves the cursor:
        pathlist.push('M'+self.coords[0]+' '+self.coords[1]);
        // the L command draws a line:
        pathlist.push('L');
        // Now push the remaining coordinates:
        for (var i=2;i<self.coords.length;i++) {
            pathlist.push(self.coords[i]);
        }
        // the Z command closes the path:
        pathlist.push('Z');
        self.attr('path',pathlist.join(' '));
    }
    self.update();
    return self;
}

这应该允许您执行以下操作:

代码语言:javascript
复制
<div id="MyArea"></div>
<script>
    var paper = Raphael("MyArea",640,480);
    var mypolygon = paper.polygon(
      10, 10,
      20, 20,
      10, 30
    );

    // you can even modify it after creation:
    mypolygon.coords.push(15,20);
    mypolygon.update();
</script>

或者创建您自己的多边形API,如果您不喜欢我的多边形API的话。

编辑:修复了一些小错误。

票数 5
EN

Stack Overflow用户

发布于 2010-09-21 02:33:47

我同意斯莱贝曼的看法,拉斐尔非常棒。但是,请注意,Android浏览器目前不支持SVG和VML。如果你的目标也是安卓的话,使用excanvas.js的Canvas可能是跨浏览器工作的更好选择。

此外,如果您真的想使用Google map API,您可以简单地隐藏地图。但由于使用条款的原因,你仍然需要使用谷歌的徽标。

你可以通过在v2中使用带有单一颜色的磁贴来做到这一点,但我相信在v3中还有其他方法可以做到这一点。

v2方法示例:http://fisherwebdev.com/california

在v3:http://fisherwebdev.com/mapcolors中隐藏一些地图要素的示例--您可以使用同样的技术来隐藏所有要素。

尝试一下,看看在v3中可以隐藏/显示或重新设置样式的内容:http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3750896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档