多边形和多边形


9

我最近一直在使用Bing Maps + Polymaps。

很明显,必应是唯一可用于Polymap的包含卫星图像的地图资源。这是真的?

我正在尝试完成在地图上绘制许多不同大小的多边形,并根据它们表示的内容用不同的颜色填充它们。此外,我希望每个多边形都是可单击的。

我了解到,要使用Polymaps将地理数据加载到地图上,您可以使用.features()或.url()作为geoJSON对象的一部分。

我有.features()工作,但是通过使用此功能,多边形数据必须嵌入到javascript文件本身中,如下所示:

map.add(po.geoJson()
        .features([
    {
      "geometry": {
        "coordinates": [[
[[-63.599925935268395,44.64018531837119],[-63.599789142608664,44.640219671024646],[-63.59973818063736,44.6401452402498],[-63.599877655506134,44.64010707058464],[-63.599925935268395,44.64018150140844]],

[[-63.59986692667008,44.639874235083376],[-63.59975695610047,44.63991431339196],[-63.599697947502136,44.63981507181532],[-63.5998159646988,44.639782627416906],[-63.59986424446105,44.6398723265918]]
        ]],
        "type": "MultiPolygon"
      },
      "type": "Feature",
      "id": "beat:05X",
      "properties": {"name": "05X"}
    }

        ]));

我希望这些数据实际上来自数据库,而不是静态地位于javascript本身内-这告诉我应该改用.url()方法-对吗?如果我使用.url()方法,则必须传递一个返回geoJSON的有效URL模板...如何使用自己的私有数据进行此操作?我熟悉PHP和mySQL-我必须改用空间数据库系统吗?

以及诸如MapServer,GeoServer等地图服务器如何适合于此?我是否无法设置PHP脚本来从$ _GET变量中读取这些模板,查询数据库并返回正确的geoJSON字符串?

我真的只需要一些启发,一些指导,就可以带领我前进,并消除我的一些疑虑。我发现自己只是在研究stackexchange,并搜索从地图服务器到地理空间数据库的所有内容-顾名思义,我可能已经读过它,但是我正在努力将各个部分放在一起。

漫长的问题,但是一旦这些问题得到澄清,我应该处于一个更好的位置。


如果有替代项,我们可以从等式中删除多图。

总而言之,我希望从数据库(PostGIS?)中获取大量具有所有不同形状,大小,颜色和透明度的多边形,并将其绘制在地图上。本质上就是这样!Polymaps具有矢量图形+考虑到上面的代码,我认为随时随地进行操作很简单...如果您有其他想法,可以将其废弃。什么最好的解决办法?我唯一的业务要求是启用卫星图像...这意味着我们正在与Bing或Google合作。

Answers:


8

如果您在谈论GeoJSON,则可以使用任何类型的数据库和后端服务器,只要您愿意:

1)期望接收TMS或/{zoom}/{x-coord}/{y-coord}.json样式的URL,并且可以将Z / X / Y转换为边界框。

(如果希望/需要查看执行此操作所涉及的数学运算,请查看类似Tilestache(.org)的内容。)

2)返回GeoJSON。

对于样式化和向数据结果中添加交互位,您需要使用图层的on()方法定义“加载”函数。例如:

var l = org.polymaps.geoJson();
l.url(“ http://example.com/tiles/{Z}/{X}/{Y}.json”);
l.on(“ load”,function(e){...});

Polymaps站点上有很多很好的文档和示例代码,但是我还包括了我最近做过的Polymaps研讨会的幻灯片和示例代码:

http://www.aaronland.info/talks/where2011/

http://www.aaronland.info/talks/where2011/workshop

干杯


谢谢亚伦,您发布的链接确实不可或缺。我已经下载了文件以供以后查看,当我处于交互阶段时,将参考它们。我不确定我是否需要Tilestache,因为Bing会负责实际的平铺,不是吗?我将提供的自定义数据是多边形数据,而不是任何类型的.png,.jpg等图像。我是否有可能在./flickr.json达到顶峰?缺少链接。欢呼,再次感谢。
乔丹·阿塞诺

我在workshop / 005-data /的根目录中找到它,谢谢!
乔丹·阿塞诺

2

好的,这是交易- 本博客文章

清除所有内容。这是玩Polymaps的任何人必读的书。我在Reddit上通过Henry找到了它

Aaron提到了使用TileStache,的确如此……这是关键,我只是不知道如何-上面的博客文章在使用TileStache方面非常有用。大赢。


您注意到您希望每个元素都可点击,您是如何做到这一点的?我的地图正在运行,但是在使元素在地图中可点击时遇到了障碍。

您好埃里克,如果您下载polymaps插件并将其解压缩到Web服务器,则可以在以下位置访问一个完美的示例:localhost / polymaps / examples / tipsy / tipsy.html-检查此家伙的源代码。说实话,我已经将此映射项目置于临时中断模式下,但尚未实现可点击的数据点,但这正是我的起点。祝一切顺利!
乔丹·阿塞诺

@JordanArsenault,“此博客文章”链接不再起作用-您是否偶然下载了该信息?谢谢
Stephen Lead

嗨,斯蒂芬,确实,博客文章现在已关闭,我没有下载的副本。但是,goalfinch的创建者可以在以下位置找到:linkedin.com/in/hanskuder ...如果您找到了内容,请告诉我,我将修复链接-或随时编辑此帖子:)
Jordan Arseno
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.