问题标签 [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.
r - readShapeSpatial 因简化的 mapshaper.org 形状而失败
所以我正在绘制我国的邮政区域,这是一个巨大的 540 万行数据框。我不需要边界的每一个小小的曲折,所以我非常兴奋地发现了mapshaper.org。看起来很简单,我只是把我的 .shp 文件扔进去,它吐出一个 10% 大小的文件!出色的!
不..现在它不能与 readShapeSpatial 一起玩...希望我不需要提供 shapefile(如果确实有必要,我可以追踪它)
原始代码,作品:
新地图,不:
traceback() 显示:
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,它映射得非常完美。
有任何想法吗?
d3.js - D3.js 显示 Topojson
我在使用 topojson 绘制委内瑞拉时遇到了问题。我从以下网址获得了委内瑞拉的 GeoJson 数据:http ://code.highcharts.com/mapdata/countries/ve/ve-all.geo.json
之后,我尝试使用 topojson 控制台实用程序并将其导入此站点: http: //www.mapshaper.org/并将其导出为 topojson。我无法渲染地图。这是我的代码:
我不确定问题是否与从 geojson 到 topojson 的转换或其他问题有关。
太感谢了,
里卡多
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 中使用它的好方法是什么?
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.
json - mapshaper 如何显示 shapefile?
我只想在http://mapshaper.org/中显示我的 shp / json 文件。我该如何执行?我想使用类似的平台在 web 中显示我的 shapefile。
mongodb - 如何修复geojson以满足mongodb 2dsphere索引的需求
我在 mongo 集合中有约 400K 文档,所有文档的几何形状均为type:Polygon
. 2dsphere
由于几何显然具有自相交,因此无法像当前那样向数据添加索引。
过去,我们有一个 hacky 解决方法,即在 mongoose 保存钩子上计算几何体的边界框,然后索引它而不是几何体本身,但我们想简化事情并只使用实际的几何体。
到目前为止,我已经尝试使用 turf如下(这是一个名为 的函数的主体fix
):
最重要的功能是unkinkPolygons
我希望它完全符合我的要求,即使几何图形足够好以便被索引。这simplify
可能没有帮助,但我添加它是为了很好的衡量标准。clean
那里是因为unkink
抱怨它的输入,并且那里是为了将一个scombine
数组变成一个 s 。实际上,仍然对它的输入不满意,所以我不得不编写一个如下的 hacky 函数来抖动重复的顶点,这会修改传递给之前的:Polygon
MultiPolygon
unkink
geom
unkink
然而,即使在所有这些 mongo 之后仍然抱怨。
这是一些示例原始Polygon
输入:
通过上述修复管道后的相同数据:
以下是索引创建时引发的错误的相关位:
我的问题是:中是否有错误turf
,或者在保持 mongo 快乐方面它没有做我需要的事情?还有关于2dshpere
索引在“修复”方面的确切需求的任何文档吗?此外,是否有人对我可以使用哪些其他工具来修复数据有建议,例如mapshaper或 PostGIS 的ST_MakeValid。
请注意,一旦现有数据被修复,我还需要一个用于即时修复新数据的解决方案(理想情况下与节点一起工作的东西)。
Mongo 版本:3.4.14(或任何更高版本的 3.x)
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。
请帮忙
拯救我的日子
netcdf - 有没有办法使用 Web 界面在 shapefile 上显示 grib2 或 netcdf 数据?
我想在给定的 shapefile 上显示一些天气数据。我正在检查是否可以使用 mapshaper 或 web mercator,但没有找到合适的程序。非常感谢任何帮助。
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 的一些权限?