OSMのAPIの基本
・HTTPのMETHODでデータを管理する
・1アクセス1オブジェクト
・XMLでデータを表現する
OSMの種類
目的 | HTTP METHOD | サンプル |
---|---|---|
作成 | PUT | http://api.openstreetmap.org/api/0.5/(node|way)/create |
取得 | GET | http://api.openstreetmap.org/api/0.5/(node|way)/{ID} |
修正 | PUT | http://api.openstreetmap.org/api/0.5/(node|way)/{ID} |
削除 | DELETE | http://api.openstreetmap.org/api/0.5/(node|way)/{ID} |
Python から OpenStreetMapのデータを修正した場合のサンプル
この例では花やしきのPointデータを修正します。花やしきのIDは「369934997」になるのでこちらを{ID}にしています。
- -*- coding: utf-8 -*-
- import httplib, base64
- username="xxxx"
- password="yyyy"
- authheader = "Basic %s" % base64string
- headers = {"Authorization": authheader}
- body='''''<!--xml version="1.0" encoding="UTF-8"?-->
- <osm version="0.5" generator="OpenStreetMap server">
- <node id="369934997" lat="35.7151986" lon="139.7945802" user="xxxx" visible="true" timestamp="2009-
- 04-09T15:42:09+01:00">
- <tag k="name" v="浅草花やしき (Hanayashiki)">
- <tag k="created_by" v="Potlatch 0.10f">
- <tag k="generator" v="test python script">
- <tag k="tourism" v="museum">
- <tag k="name:ja" v="浅草花やしき">
- </tag></tag></tag></tag></tag></node>
- </osm>'''
- conn = httplib.HTTPConnection("api.openstreetmap.org:80")
- conn.request("PUT", "/api/0.5/node/369934997", body, headers)
- response = conn.getresponse()
- print response.status, response.reason
- data = response.read()
- #print data
- conn.close()
※2週間後にはAPIのバージョンが0.6に変わるようなので、すぐに役に立たなくなります
0 件のコメント:
コメントを投稿