将 2500 个 geoJSON 多边形渲染到传单地图上

Render 2500 geoJSON polygons onto a leaflet map(将 2500 个 geoJSON 多边形渲染到传单地图上)
本文介绍了将 2500 个 geoJSON 多边形渲染到传单地图上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我一直在寻找,但似乎找不到解决方案.

I've been searching but cannot seem to find a solution.

我有一个 170mb 大小的 GeoJSON 文件.它包含大约 2500 个多边形.不知何故,我需要将它渲染到传单地图.显然我没有机会.

I have a GeoJSON file which is 170mb in size. It contains about 2500 polygons. Somehow I need to render it to a leaflet map. Evidently at that size I have no chance.

呈现这些数据的最简单方法是什么?我是否能够创建一个完整的透明 png,它可以简单地呈现在世界地图上.巨大的尺寸是由于复杂性和多边形的数量.在这一点上,我不需要它是交互式的.

What will the easiest way to render this data? Am I able to create a complete transparent png which can simply be rendered over the world map. The huge size is due to the complexity and the number of polygons. At this point I don't need it to be interactive.

谢谢,布赖恩

推荐答案

最简单的方法是根据这些数据创建自己的地图图块.有几种方法可以实现,但我的建议是您使用 TileMill.它是免费的,而且非常易于使用.所以,基本上你会:

The easiest way is to create your own map tiles based on that data. There are a couple of ways of achieving this but my suggestion is that you use TileMill. It's free and very easy to use. So, basically you would:

  • 使用 TileMill 并将您的 GeoJSON 文件指定为数据源

  • Use TileMill and specify your GeoJSON file as the data-source

在 TileMill 中使用特殊的类似 CSS 的语言配置地图的显示方式(如多边形的颜色)

Configure how the map should be displayed (like the color of the polygons) with a special CSS-like language inside TileMill

生成图块

在您的 Leaflet 地图中加载一个新的 TileLayer 以引用您的文件

Load a new TileLayer in your Leaflet map that references your files

实际上我前段时间写过一个使用 .shp 而不是 GeoJson 的教程,但应该足够相似:

I've actually written a tutorial some time ago that uses a .shp instead of a GeoJson, but should be similar enough:

http://build-failed.blogspot.pt/2012/03/custom-map-tiles-part-2-tilemill.html

这篇关于将 2500 个 geoJSON 多边形渲染到传单地图上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I can get a text of all the cells of the table using testcafe(如何使用 testcafe 获取表格中所有单元格的文本)
node_modules is not recognized as an internal or external command(node_modules 未被识别为内部或外部命令)
How can I create conditional test cases using Protractor?(如何使用 Protractor 创建条件测试用例?)
PhantomJS and clicking a form button(PhantomJS 并单击表单按钮)
Clicking #39;OK#39; on alert or confirm dialog through jquery/javascript?(在警报上单击“确定或通过 jquery/javascript 确认对话框?)
QunitJS-Tests don#39;t start: PhantomJS timed out, possibly due to a missing QUnit start() call(QunitJS-Tests 不启动:PhantomJS 超时,可能是由于缺少 QUnit start() 调用)