使用 python 将纬度和经度上传到 umap/osm

Uploading lat and long to umap/osm using python

我有一个 python 脚本,可以让我从 openstreetmap 获取纬度和经度,但我现在正在寻找如何在 OSM(或 uMap)中创建自定义地图,让我可以上传一堆纬度,经度坐标并在地图中为每个纬度,经度对添加一个点。我知道我可以手动上传一个 csv 文件,但是地图中有很多点,我无法在单个 csv 文件中上传一批 100k 点。我怎样才能做到这一点?

编辑:根据@Michael2 的回答,我创建了一张新地图并尝试执行 post 请求。但是,我对地图 ID 和图层 ID 有点困惑。

如果我创建一个新地图,我们将其命名为“mymap”,那么 ID 将是“mymap_64813”还是“64813”? “64813”是 umap 给我的一个数字。而且我不知道在哪里可以找到层 ID :(

对于 uMap,您可以模拟 umap 用于存储 GEOJSON 数据的 POST 请求。创建一个新地图并记下地图的 ID、主数据层的 ID(umap 支持每个地图有多个图层)和您的会话 cookie。

然后 POST 请求:

https://umap.openstreetmap.de/de/map/<id of the map>/datalayer/update/<id of the layer>/

确保为所有者和 csrf-token

发送 cookie

内容应该是包含以下字段的多部分表单请求:

  • name:图层名称的字符串
  • display_on_load: true
  • rank: 0
  • geojson:内容类型为application/json,实际点数据在GEOJSON-Format.
  • 中的文件

要检查此调用,请编辑示例地图并使用浏览器的 Web 开发人员工具查看客户端和服务器之间的流量。