问题标签 [mapshaper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
272 浏览

r - readShapeSpatial 因简化的 mapshaper.org 形状而失败

所以我正在绘制我国的邮政区域,这是一个巨大的 540 万行数据框。我不需要边界的每一个小小的曲折,所以我非常兴奋地发现了mapshaper.org。看起来很简单,我只是把我的 .shp 文件扔进去,它吐出一个 10% 大小的文件!出色的!

不..现在它不能与 readShapeSpatial 一起玩...希望我不需要提供 shapefile(如果确实有必要,我可以追踪它)

原始代码,作品:

新地图,不:

traceback() 显示:

0 投票
0 回答
236 浏览

d3.js - d3 toposjon 地图故障排除......为什么它看起来像所有的曲折和碎片?

更新:解决了,有点。我花了一些时间学习 ogr2ogr 和 topojson 并制作了一个在 D3 中运行良好的 topojson。我不确定为什么 mapshaper.org 吐出的文件在我手中变成了碎片;在他们的网站上,该文件显示正常。

原帖:可能有答案,但你怎么问谷歌“为什么我的 d3 地图看起来像锯齿形和碎片?” FWIW,“按图像搜索”一无所获。;)

我怀疑这是错误的投影或 shapefile 的错误转换?在我自己学习 ogr2ogr 和 topojson 的同时,我一直在通过 mapshaper.org 进行转换。

这应该是乔治亚州两个县的地图,面积可能有 100 英里。shapefile 来自美国人口普查老虎。

更新:Tiger 的 .xml 似乎暗示投影是 WGS_1984_Web_Mercator_Auxiliary_Sphere

我从我们的州测绘机构获得了同一区域的另一个 shapefile,它映射得非常完美。

有任何想法吗?

这不是乔治亚州迪卡尔布县的地图

0 投票
1 回答
1009 浏览

d3.js - D3.js 显示 Topojson

我在使用 topojson 绘制委内瑞拉时遇到了问题。我从以下网址获得了委内瑞拉的 GeoJson 数据:http ://code.highcharts.com/mapdata/countries/ve/ve-all.geo.json

之后,我尝试使用 topojson 控制台实用程序并将其导入此站点: http: //www.mapshaper.org/并将其导出为 topojson。我无法渲染地图。这是我的代码:

和topojson:https ://gist.githubusercontent.com/rickitan/665af7cc271baf652a90/raw/ed7341aa5431524083c6a1783eb9d32501357a91/mapShaperOutput

我不确定问题是否与从 geojson 到 topojson 的转换或其他问题有关。

太感谢了,

里卡多

0 投票
1 回答
461 浏览

javascript - QGIS生成的shapefile在被mapshaper转换为topojson时格式错误

所以我从一个运行良好的非常小的例子开始。我使用QGIS画了一条线,然后使用mapshaper将其转换为topojson。然后我使用D3.js来加载和可视化它。这是更大但不起作用的示例:

jsfiddle.net/kwoxer/kpL1uyy2/2/

正如您所看到的,它不只显示一行,而是显示疯狂的线条,好像转换出错了。已经测试过不同的浏览器。

但正如我所说,我之前已经用 QGIS 做了一条小线,转换它,一切都很好。那么这是线路大小的问题吗?还是通过转换器?

这是来自 QGIS 的图片在浏览器中的样子:http: //i.imgur.com/s1FPn2P.png

那么创建(巨大的)自己的地图并在 D3.js 中使用它的好方法是什么?

0 投票
1 回答
526 浏览

javascript - Problems converting shapefile to topojson with features

I downloaded a shape file from the U.S. Census and passed it through http://mapshaper.org/, which gave me a working topojson file to use in D3.

However, I realized the topojson file had all the features labels stripped. So there is no way identify features to link to CSV data.

I installed topojson, but topojson version 2 does not have the same commands as the version one to convert shape files to topojson and retain the features. Previously, topojson -o output.json input.shp This is the current topojson github reference https://github.com/topojson/topojson.

So my question is what is the best way to convert shapefiles to topojson and retain the features attributes.

0 投票
2 回答
341 浏览

json - mapshaper 如何显示 shapefile?

我只想在http://mapshaper.org/中显示我的 shp / json 文件。我该如何执行?我想使用类似的平台在 web 中显示我的 shapefile。

0 投票
1 回答
1009 浏览

mongodb - 如何修复geojson以满足mongodb 2dsphere索引的需求

我在 mongo 集合中有约 400K 文档,所有文档的几何形状均为type:Polygon. 2dsphere由于几何显然具有自相交,因此无法像当前那样向数据添加索引。

过去,我们有一个 hacky 解决方法,即在 mongoose 保存钩子上计算几何体的边界框,然后索引它而不是几何体本身,但我们想简化事情并只使用实际的几何体。

到目前为止,我已经尝试使用 turf如下(这是一个名为 的函数的主体fix):

最重要的功能是unkinkPolygons我希望它完全符合我的要求,即使几何图形足够好以便被索引。这simplify可能没有帮助,但我添加它是为了很好的衡量标准。clean那里是因为unkink抱怨它的输入,并且那里是为了将一个scombine数组变成一个 s 。实际上,仍然对它的输入不满意,所以我不得不编写一个如下的 hacky 函数来抖动重复的顶点,这会修改传递给之前的:PolygonMultiPolygonunkinkgeomunkink

然而,即使在所有这些 mongo 之后仍然抱怨。

这是一些示例原始Polygon输入:

通过上述修复管道后的相同数据:

以下是索引创建时引发的错误的相关位:

我的问题是:中是否有错误turf,或者在保持 mongo 快乐方面它没有做我需要的事情?还有关于2dshpere索引在“修复”方面的确切需求的任何文档吗?此外,是否有人对我可以使用哪些其他工具来修复数据有建议,例如mapshaper或 PostGIS 的ST_MakeValid

请注意,一旦现有数据被修复,我还需要一个用于即时修复新数据的解决方案(理想情况下与节点一起工作的东西)。

Mongo 版本:3.4.14(或任何更高版本的 3.x)

0 投票
1 回答
1362 浏览

openlayers - 有没有机会改变geojson(mapshaper)的投影

  • 大家好,
  • 我正在使用 OpenLayers 5、Angular 6、mapshaper 工具(将 shp 转换为 json)。
  • MapshaperTool , Git 代码

我的过程

  • 我已经安装了npm mapshaper --save
  • 我能够上传不同的 .shp 文件并能够获取 json 特征数据。

  • 我有 2 个不同的 .shp 文件 [layer-ind.shp, layer-administration.shp]

  • layer-ind.shp 文件上传了它的 json 给喜欢

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {}, "geometry": { "type": "LineString", "coordinates": [ [ 75.89355468749999, 18.521283325496277 ], [ 80.6396484375, 19.68397023588844 ] ] } } ] }

  • layer-us.shp 文件上传了它的 json 给喜欢

{ "type": "FeatureCollection", "features": [ { "type":"Feature", "geometry":{ "type":"LineString", "coordinates":[ [-349771.1875,445307.8125], [-349789.6875,445314.375], [-349796.5625,445321.5625], [-349792.78119999915,445341.4375], [-349786.53119999915,445351.71880000085], [-349771.1875,445307.8125]]}, "properties":{ "TYPE":"ISLAND","RuleID":3, "Shape_Leng":544.475438955 } } ] }

当在地图上预览这两个图层(功能)时 1. layer-ind.json 文件给出了正确的结果,并且能够在正确的位置看到地图上的图层 2. layer-us.json 文件给出了在地图上显示的错误位置 (0,0)

  • 如何解决这些第二点 layer-us.json 问题,我也改变了重新投影

const vectorSource = new VectorSource({ features: (new GeoJSON()).readFeatures(geojson, { featureProjection: 'EPSG:4326' }); });

  • 我也更改了 featureProjection 代码,但它不工作 layer-us.json。
  • 请帮忙

  • 拯救我的日子

0 投票
0 回答
71 浏览

netcdf - 有没有办法使用 Web 界面在 shapefile 上显示 grib2 或 netcdf 数据?

我想在给定的 shapefile 上显示一些天气数据。我正在检查是否可以使用 mapshaper 或 web mercator,但没有找到合适的程序。非常感谢任何帮助。

0 投票
1 回答
236 浏览

c# - 使用进程从 Web API 应用程序运行全局节点应用程序

我有一个 WEB API 应用程序,在 ASP.NET 框架 4.7 中完成,我想使用命令行调用 NodeJs 中的应用程序,因此,使用 System.Diagnostic.Process。

NodeJs 应用程序已使用

在开发环境中一切正常,我什至可以捕获输出,但是当我在生产服务器上运行时,我会在标准输出中看到以下消息:

(mapshaper 是我要运行的 nodejs 应用程序)

请注意,如果我直接从命令行在生产服务器上运行应用程序,它会完美运行。

如果我从 API 运行,而不是“mapshaper”,命令“DIR”我会得到目录列表,因此它可以工作。我也尝试运行'node -v'并且我正确地获得了安装的节点版本:

这是我用来调用 cmd.exe 的代码,并插入要运行的命令:

因此,在生产中,只有从上述代码运行时无法识别的命令 mapshaper(如果从命令行手动运行,它就可以工作)。

哪个可能是原因?在服务器上执行 NodeJs 的一些权限?