JA:OSM XML
.osm ファイルはXMLフォーマットファイルでOpenStreetMapのデータを示すものです. ノードやウェイ、そしてリレーション(Data Primitives)と共にあらゆる関係するタグが表されます。osmファイルはまた changesetsも含んでいます。
planet.osm は、最も有名な例で、地球全体を包含するものです (すなわち、データベースのノード、ウェイ、リレーションの完全なスナップショット)。 しかし.osm ファイルはまた、より小さな部分に使用可能で、いわゆる extractsもあります。API Map call は、同じフォーマットにおけるデータを返します。
この JOSM file format は、また .osm 拡張子を使用して、特に新たにダウンロードされたデータに対して同様のスキーマを引き継ぎます。しかし、まだそれらをアップロードしてはいけないなら、あなたは 変更部分 を保存しておくことができます。これは新たに作成されたオブジェクトの負のIDナンバーに関わり、削除されたエレメントのaction="delete"を含む他の動作属性を含んでいます。
これらは、多数の方法 get .osm dataがあります。
検証
フォーマットは正式に一度も指定されたことはありません。そこで、このデータのためにいかなるパーサを実装する前に、慎重にソースを調べてください。
これらは .osmファイルを出力した一般的なプログラムの幾つかの違いです。
- API と JOSM は
boundsエレメントを用います。 Osmosisとthe planetは、次の二つの属性をboundエレメントに含んでいます。:box="-90,-180,90,180"andorigin - 属性値
visibleは、planet.osm には含まれておらず、他のツールではfalseのみが書かれています。その存在とtrueのデフォルトを想定をテストすることが最良です。 -
userとuidは、一度それ自体を公開から編集非表示にする可能性があると、失われることがあります。 この設定は、それが適用される場合でも(長いあいだ変更されていない主に古い要素)順守されている。
- チェンジセットのための
num_changesはオプションの属性です (これは不具合があるために履歴のエクスポートツールからは放棄されました) - また、.osm-file内の単一の要素と要素の順序の複数のバージョンは、常に同じではないことがあるかもしれません。
- JOSMは、新しい要素としての
timestampかversionかchangesetが含まれないformatを修正したファイルを保存します。しかし、action属性があるかもしれません。JOSMは、またvisible="true"属性を含んでいます。
これらの言語でフォーマットを定義する試みの詳細については、XSDおよびDTDページを参照してください。
例
ここでは非常に単純な.osmファイルを示します。さまざまなXML要素が何を意味するかの詳細については、 Data Primitivesを参照してください。
<?xml version="1.0" encoding="UTF-8"?> <osm version="0.6" generator="OpenStreetMap server"> <bounds minlat="51.5073601795557" minlon="-0.108157396316528" maxlat="51.5076406454029" maxlon="-0.107599496841431"/> <node id="319408586" lat="51.5074089" lon="-0.1080108" version="1" changeset="440330" user="smsm1" uid="6871" visible="true" timestamp="2008-12-17T01:18:42Z"/> <node id="319408587" lat="51.5074343" lon="-0.1081264" version="1" changeset="440330" user="smsm1" uid="6871" visible="true" timestamp="2008-12-17T01:18:42Z"/> <node id="275452090" lat="51.5075933" lon="-0.1076186" version="3" changeset="2980587" user="nickb" uid="1697" visible="true" timestamp="2009-10-29T12:14:35Z"> <tag k="name" v="Jam's Sandwich Bar"/> <tag k="amenity" v="cafe"/> </node> <node id="304994980" lat="51.5074645" lon="-0.1075735" version="2" changeset="388960" user="BiIbo" uid="3516" visible="true" timestamp="2009-02-13T00:41:47Z"> <tag k="barrier" v="gate"/> </node> <node id="304994981" lat="51.5074723" lon="-0.1075014" version="1" changeset="374143" user="Matt" uid="70" visible="true" timestamp="2008-10-16T16:35:57Z"/> <node id="304994979" lat="51.507406" lon="-0.1083348" version="4" changeset="2114003" user="jamicu" uid="38244" visible="true" timestamp="2009-08-12T01:33:32Z"/> <way id="27776903" visible="true" timestamp="2009-05-31T13:39:15Z" version="3" changeset="1368552" user="Matt" uid="70"> <nd ref="304994979"/> <nd ref="319408587"/> <nd ref="319408586"/> <nd ref="304994980"/> <nd ref="304994981"/> <tag k="access" v="private"/> <tag k="highway" v="service"/> </way> </osm>
この例では、データが map callから返されたものです。 :
OSMファイルのプロセシング
いくつかのツールは、フィルタリングやOSMのファイルを変換、分割のためにあります。ほとんどの分割のための一般的な osmosisです。代替のものや他の目的のツールは、Category:OSM processingで見つけることが出来ます。