The ONE使用笔记:获取wkt格式的地图

本文介绍如何从OpenStreetMap获取地图,并转换成符合The ONE仿真器使用的wkt格式。

1. 从OpenStreetMap获取地图

打开OpenStreetMap官网,相应操作如下图:

image

点击Export后,跳转到另一个页面,理论上是开始下载osm数据,但我试了几次,一直都没反应。没关系,把网址复制下来,用wget工具下载,如下(-O 后面是输出的文件名):

wget -O toulouse.osm "http://api.openstreetmap.org/api/0.6/map?bbox=1.3637,43.5464,1.5209,43.6366"

这样就得到osm数据了。

2. 转换成wkt格式

osm数据是xml格式,已有人写了一个工具叫osm2wkt,可以将osm转换成wkt格式。点击这里下载jar包,运行下面命令,即可完成转换:

java -jar ./osm2wkt.jar toulouse.osm

osm2wkt使用方法如下:

generate+cleanup from osm: >> java -jar ./osm2wkt.jar mapfile.osm
cleanup from wkt         : >> java -jar ./osm2wkt.jar mapfile.wkt
options: 
    -o outputfile - write output to given file
    -a - append to output file
    -t X Y - translate map by x=X and y=Y meters

PS:实际上,我没转换成功,osm2wkt先提示缺少</img>标记,加上去之后,还提示只处理osm格式而不能是html格式。

3. 讨论

OpenStreetMap相当于是地图的元数据,如果过滤出自已想要的数据,这才是难点。比如我想过滤出公共交通的行走路线,还有我如何将一个城市抽象成一个点?请指点!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

18 thoughts on “The ONE使用笔记:获取wkt格式的地图

  • 2018年10月30日 星期二 at 02:23下午
    Permalink

    您好,我成功生成了wkt格式的文件,但是我想要导入进the one的是一个连续移动节点的轨迹,但是wkt只有几何数据,没有时间数据,请问我要导入含有时间信息的连续移动的轨迹可以用什么方法呢?

    Reply
  • 2017年07月11日 星期二 at 11:38上午
    Permalink

    博主,您好,我按您的方式做也遇到了:提示只处理osm格式而不能是html格式。请问您找到解决方案了吗?

    Reply
    • 2017年07月12日 星期三 at 01:30下午
      Permalink

      那会我并没有深入去找解决方法,后面我用的是城市公共交通网络的调度数据(GTFS)作为数据集。

      Reply
  • 2017年06月01日 星期四 at 10:11下午
    Permalink

    请问地图的比例尺是多少呀,打开WKT文件,发现里面都是这种东东:LINESTRING (2548604.5879469537 6676020.901250458, 2548417.518483455 6676020.901250458), 这些数字明显不是经纬度,那么是什么呢?

    Reply
    • 2017年07月15日 星期六 at 03:48下午
      Permalink

      建议你查看WKT,比如这里:http://www.geoapi.org/2.0/javadoc/org/opengis/referencing/doc-files/WKT.html。摘抄如下:

      UNIT

      This describes units used for values elsewhere within the parent WKT clause (sometimes including descendants of the parent clause). The physical dimension (i.e. type) of the units is determined by context. For example, in a GEOGCS the type of the units is angular. In a VERT_CS the type of the units is linear. Within a UNIT clause, the units are described by relating them to a fundamental unit of that type with a conversion factor. For linear units, the conversion factor is the scalar value that converts the described units into meters. For angular units, the conversion factor is the scalar value that converts the described units into radians.

      Reply
  • 2016年05月19日 星期四 at 10:33上午
    Permalink

    您好,我想请教您一下,我可不可以用openjump自己画一个地图,输出为wkt格式用在ONE里面?

    Reply
    • 2016年05月19日 星期四 at 04:02下午
      Permalink

      The ONE支持wkt格式,但你得确保图是连通的。

      Reply
  • Pingback: The ONE使用笔记:目录 | | Spark & Shine

  • 2015年09月23日 星期三 at 05:05下午
    Permalink

    你好,我下了openjump后 它只能用java1.8打开吗? 不能用低版本的 如1.6打开吗? 可以的话怎么修改啊

    Reply
    • 2015年09月23日 星期三 at 06:36下午
      Permalink

      Java 1.5 + 都是可以的。话说,你安装遇到问题了?还是还没安装?

      Reply
      • 2015年09月24日 星期四 at 09:47上午
        Permalink

        弄好了 修改了下环境变量就好了。 谢啦

  • 2015年07月08日 星期三 at 04:51下午
    Permalink

    哥 osm2wkt 下不到了呢 还有备份吗

    Reply
  • 2015年06月24日 星期三 at 10:06下午
    Permalink

    大神,请教一下,我如何在这种A_offices.wkt文件中获取他的办公地点的坐标?我是想在办公区域设置静态节点。

    Reply