2013-04-01 13 views
8

私は良いドライバーなら誰かを決定するモバイルアプリを作成しています。携帯電話はダッシュボードに座って、ユーザーが運転中にGPS情報を収集します。ドライバが速度制限に従っているかどうかを判断する必要があり、OpenStreetMap経由でこれを行いたいと思います。 OpenStreetMapから速度制限を得る最善の方法は何ですか?OpenStreetMapからスピード制限を取得

答えて

2

OpenStreetMapデータ(link)の道路や水路に使用されているmaxspeedタグがあります。 OSMデータ自体は、さまざまな形式で利用できます。最も簡単なのは、人間が読めるXML形式で、OpenStreetMap.orgから直接エクスポートすることができます。以下はロンドンのThe Strandのデータフォーマットとmaxspeedの表現方法の例です。

<way id="157541665" version="1" timestamp="2012-04-05T22:32:48Z" changeset="1"/> 
    <nd ref="1697772135"/> 
    <nd ref="33141175"/> 
    <nd ref="321255915"/> 
    <nd ref="282569730"/> 
    <tag k="highway" v="primary"/> 
    <tag k="lanes" v="3"/> 
    <tag k="maxspeed" v="30 mph"/> 
    <tag k="name" v="Strand"/> 
    <tag k="postal_code" v="EC4"/> 
</way> 
+4

openStreetMapにGETリクエストを投稿してください。 thnxを事前に: – MQoder

+0

どのように結果を得たかの例は便利だろう –

7

回答を得るためにWebリクエストを行うことができます。学校の前で

www.overpass-api.de/api/xapi?*[maxspeed=*][bbox=5.6283473,50.5348043,5.6285261,50.534884] 

し、それを通過する道を示すの答え、::ここ
はあなたがすることになっている小箱の1(ブラウザのURLとしてそれを試してみてください)です

<node id="1312239864" lat="50.5348877" lon="5.6286790"> 
    <tag k="highway" v="crossing"/> 
    <tag k="traffic_calming" v="bump"/> 
</node> 
<node id="2025084665" lat="50.5345623" lon="5.6274183"> 
    <tag k="traffic_calming" v="choker"/> 
</node> 
... 
<way id="191950462"> 
    <nd ref="2025084669"/> 
... 
    <tag k="bicycle" v="yes"/> 
    <tag k="highway" v="secondary"/> 
    <tag k="maxspeed" v="30"/> 
    <tag k="name" v="Rue d'Esneux"/> 
    <tag k="source:maxspeed" v="school zone"/> 
</way> 

私は興味深いものを残しましたが、最も説明がつきました。たとえば、トラフィックが自ノード上で機能を停止させるなどです。
通りはノードと独自のタグで作られた方法です。
あなたの答えは、maxspeed = 30です。 maxspeedがない場合、 デフォルトはハイウェイ=セカンダリ(または=高速道路)に適用されます
すべてのタグはwiki.openstreetmap.orgで説明されています
これはxapiを使用しています。 overpass apiを使用することもできます。
速度制限範囲は部分的ですが、改善する可能性があります。 メインマップにメモを残して、データを入力します。

4

XMLとjsonの両方を使用できる現代的な代替方法を探している人にとっては、ここでマップは挑発的に価値のある宝石であり、約10万のリクエストを与える無料のプランがあります。つかいます。

https://developer.here.com/myapps/create-with-plan/10134035/10134084

、アカウントを作成してアプリを作成し、以下に似たAPIにあなたの緯度多くを適用します。

私はHEREマップ、優れた速度制限の解決策を探してちょうど開発者と提携しない方法で午前

http://route.st.nlp.nokia.com/routing/6.2/getlinkinfo.xml?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&waypoint=50.05564304861044,8.38889128575724&linkattributes=all

そのドキュメントごとに速度制限の例要求をゲット!

PSこのソリューションを使用している場合は、この回答を使用することもできます。

Here Maps REST API - getlinkinfo returns incorrect speed limit

関連する問題