GPS数据采集与OpenStreetMap编辑

简单介绍一下通过GPS采集道路数据并上传到OpenStreetMap的流程。

采集

首先你需要一个GPS数据记录器,或者叫做GPS Logger。这类产品在淘宝上可以找到很多,台湾的长天(HOLUX)是相对价廉物美的品牌。我的设备是HOLUX m1000c,下文以此为例。

m1000c的使用非常简单。开机之后,指示GPS的黄灯点亮,设备开始搜索GPS卫星。根据你所出的位置、遮挡情况以及天气情况,搜星的时间略有不同。当GPS黄灯开始闪烁时Logger即开始记录数据,默认情况下m1000c每隔5秒记录一次数据。每次重启后,Logger都会新开一条记录。

导入

对Windows用户,将Logger通过USB线与电脑连接后,可以利用随机附带的软件将数据导入为GPX格式。对Linux用户,可以利用gpsbabel导入数据:
gpsbabel -t -i m241 -f /dev/ttyACM0 -o gpx -F myfile.gpx

其中:

  • -t 表示数据为track类型
  • -i m241 输入格式为HOLUX m241,m1000c使用的是这种格式
  • -f /dev/ttyACM0 输入设备是/dev/ttyACM0
  • -o gpx 输出格式是gpx
  • -F 输出文件myfile.gpx

在一些发行版上,需要root权限访问/dev/ttyACM0,所以不要忘记将输出的文件chown给普通用户。

导入完成后可以利用下面的命令清空Logger
gpsbabel -i m241,erase_only=1 -f /dev/ttyACM0

在Windows和Linux上都可以使用Viking查看导入的数据:

  • 启动viking
  • 添加一个OSM地图图层: Layers->New Map Layer
  • 导入GPX数据: File->Append File…
  • 下载OSM地图,右键点击左侧的Map图层,Download Missing Onscreen Maps

Screenshot at 2011-10-05 09:45:20

编辑

Windows和Linux用户都可以通过Merkaartor编辑OSM数据。

启动Merkaartor,导入GPS数据: File->Import。
选择左侧的GPS图层,对需要导入的数据,右键点击Extract Drawing Layer将GPS转换为可编辑数据。
Screenshot at 2011-10-05 10:57:17

根据实际情况编辑道路数据的属性。对GPS转换的数据,选择菜单Feature->Force Upload,将其加入dirty set准备上传。点击Upload即可将数据上传到OpenStreetMap。

OpenLayers extension for HeatCanvas

As the screenshot shows, now you can embed HeatCanavs in your OpenLayers application, as well as OpenSteetMap.

Three steps to create such kind of map:

1. Create HeatCanvas layer:

// constructor params:
// name, OpenLayers map instance, OpenLayers layer options, HeatCanvas options
var heatmap = new OpenLayers.Layer.HeatCanvas("HeatCanvas", map, {},
        {'step':0.3, 'degree':HeatCanvas.QUAD, 'opacity':0.8});

2. Feed some data on layer:

heatmap.pushData(latitude, longitude, value);

3. Add layer to map:

map.addLayer(heatmap);

The live demo is hosted on github:
http://sunng87.github.com/heatcanvas/openstreetmap.html

HeatCanavs is a heat map implementation on HTML5 canvas and WebWorker API.

欢迎加入OSM中文邮件列表

大家好,欢迎加入OSM中文邮件列表。现在OSM的中文用户、贡献者终于有一个交流平台了,在 OSM地图编辑的过程中,大家一定遇到过非常多的问题,今后可以在邮件列表中共同探讨了。

周一我在决定邀请一些用户加入列表之前,了解了一下国内OSM贡献者的情况。这个过程其实非常简单,也非常有趣,我查看了包括上海、苏州、杭 州、南京、北京、青岛、济南、沈阳、广州、合肥等几个城市的地图作者,管中窥豹,向几名其中非常活跃的中文用户发出了邀请。同时我也发现有一 些用户曾经非常活跃,但是最近一段时间提交的次数比较少,OSM是一个巨大、繁琐的工作,持续的贡献需要兴趣也需要恒心,过去大家孤军奋战, 因为一些原因很容易放弃这项工作,这次有了中文邮件列表,希望这个平台对OSM贡献者也能起到一个促进的作用,让制图更加有趣。

自我介绍,我的OSM用户名是Sunng,从2008年开始关注OSM,不过到了今年上半年才开始提交地图,我主要在南京、上海活动,目前也 主要关注这两个地方的制图。我在Linux上使用Merkaator作为编辑器,数据来源主要是卫星地图和一个GPS Logger。

上周,随着OSM的创始人Steve Coasts加入Bing,OSM和Bing的合作全面开始,社区动作非常快,目前Poltach2/JOSM/Merkaator等编辑器已经都支持以 Bing卫星地图为底图的编辑模式。这对中国贡献者来说是一个巨大的福音:Bing地图的分辨率要远高于之前Yahoo提 供的卫星地图。今后以卫星地图为数据源的制图工作会更加轻松、质量会更高。

再提一个有趣的事情,我在浏览地图时,发现湖南南部的行政区数据明显比别处多,下载了数据才了解这是用户 wangchun(http://www.openstreetmap.org/user/wangchun) 的作品。 wangchun是OSM中国的活跃贡献者,他维护了很多铁路数据,此外,还包括钓鱼岛边界的这次编辑 (http://www.openstreetmap.org/browse/changeset/3937490)

抛砖引玉,希望大家在OSM邮件列表上畅所欲言。也希望大家邀请身边的OSM用户、贡献者、潜在用户、潜在贡献者加入邮件列表,让OSM 中国社区更加壮大!

$$$$$$$$$$$$$$$$$$$$$酱油分割线$$$$$$$$$$$$$$$$$$$$$

OpenStreetMap(osm.org)是一个以Wiki方式绘制全球街道地图的项目,这个项目的所有数据都来自志愿者贡献,并以CC-BY-SA许可开放所有的地图和原始数据。
OpenStreetMap在国内也有一批贡献者,很多贡献可以追溯到2007年。目前,上海、杭州、北京的OSM已经初具规模,不过更多的城市需要志愿者加入。

于是在这里邀请您成为OSM的贡献者,并加入到中文邮件列表的讨论中来(http://lists.openstreetmap.org/listinfo/talk-cn)。

成为OSM的贡献者,你可以以这篇Wiki作为基础教程:

http://wiki.openstreetmap.org/wiki/Zh-hans:Beginners_Guide

设备?
您可能需要一个GPS设备,但是这不是必须的。还可以通过对卫星地图进行数字化的方式参与到这项工作中,最近,OSM与Bing地图进行了合作,在国内也有了较高分辨率的卫星影像作底图。

软件?
OSM有很多编辑器,您可以从Potlatch/JOSM/Merkaator等工具中选择一个。

制图?
你需要了解一些基本的制图规范。OSM数据的基础单元是点、线和关系,您可以在这里找到所有的要素类型:

http://wiki.openstreetmap.org/wiki/Map_Features

也可以参考已有的数据,更可以在邮件列表中进行相关的讨论。

欢迎你成为OSM的贡献者,加入到开放地图贡献者的行列中来!

$$$$$$$$$$$$$$$$$$$$$酱油分割线$$$$$$$$$$$$$$$$$$$$$

写了一晚上就写出这两段字来,现在不写大段文字表达能力迅速退化。