問題タブ [osrm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - OSRM で単一ソースの最短パスを計算する方法は?
最近、 OSRMルーティング ライブラリをいじっています。最短経路問題を解くのに非常に効率的であると思われます。ただし、それを使用して単一ソースの最短パスを計算する方法がわかりませんでした。より正確には、固定された開始点が与えられた場合、指定された距離制限内 (たとえば、30 分以内に到達可能) に到達できるすべての場所への最短距離を計算します。
OSRM は、縮約階層を内部的に使用します。私の理解では、この手法は、実世界のデータで 2 地点間の距離を計算する場合、Dijkstra のアルゴリズムよりもはるかに優れています。しかし、私の問題には、Dijkstra のアルゴリズムの方が適しているようですね。
OSRM は、単一ソースの最短経路問題 (距離に制限あり) を計算するための API を提供していますか? この種の問題により適した無料のルーティング ライブラリは他にありますか? できれば、OpenStreetMap データを適切にサポートするもの。
javascript - OSRM ルーティング用の JSON を取得する
cloudmade API を使用してルーティング システムを Web サイトに実装することに成功しました。OSRM ルーティング システム ( https://github.com/DennisOSRM/Project-OSRM )でも同じことをしたいのですが、OSRM json 出力の取得に問題があります。
以下は、cloudmade API から json を取得する例です。
$.ajax の使用 - http://jsfiddle.net/mayooresan/FhfVW/2/
$.getJSON の使用 - http://jsfiddle.net/V3qgZ/72/
OSRM のサーバー API は次の場所にあります: https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api (クエリのサーバーの場所はhttp://router.project-osrm.orgにあります)。
上記と同じ座標 ( http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001 )の URL をブラウザーに入力すると、json ファイルが取得されます。しかし、これを $.getJSON または $.ajax で使用しようとしても、コールバックを使用してデータ型を設定しても、json データを取得できず、気が狂いそうになります! APIに文書化されているので、それは可能だと確信しています。
どんな助けでも大歓迎です。
ニック
c++ - Boost -- 警告: libicui18n.so.48 が見つかりません
Ubuntu 12.04 でProject-OSRMの最新 (4.1) バージョンをビルドしようとしていますが、Boost に関連するエラーがあります。
OSRM の古いバージョン (3.9) は、パッケージとして入手可能な Boost のバージョン (1.48) に依存していましたが、新しいバージョンには Boost >= 1.49 のバージョンが必要です。
そのため、 Boost 1_55_0 をソースからインストールし、この場所/usr/include/boost_1_55_0
に設定しました。BOOST_ROOT
Project-OSRM を作成すると、次のエラーが表示されます。
libicuuc.so.48
とlibicui18n.so.48
が欠けているように見えますが、実際には に存在し/usr/lib
ます。
ここに私の質問があります:
- どうやっ
libicuuc.so.48
てlibicui18n.so.48
入ったの/usr/lib
?それらは標準のUbuntuセットアップの一部ですか? - これは彼らの適切な場所ですか?はいの場合、なぜ「見つからない」のですか?
- そうでない場合、それらを見つけるにはどこにいる必要がありますか??
- グーグルで調べた後、設定
LD_DEBUG
しましfiles
たが、その出力はあまり役に立ちません。でも、ここで生産できます。
google-maps - OSRM を使用して 2 つの郵便番号間の距離を計算する
私は距離計算のために OSRM を調べてきましたが、本質的に、英国の 2 つの郵便番号間の距離計算を行う次のクエリがあります。
サーバー API ドキュメント ( https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api ) には、郵便番号については言及されていないようで、経度と緯度のみが言及されています。
OSRM の Google マップ クエリに相当するものを知っている人はいますか? また、FOSS ルーティング プロジェクトに関するその他の推奨事項や、2 つの郵便番号に基づいて距離を取得する方法があれば教えてください。
c++ - Ubuntu 14.04 の OSRM で make を実行するとメモリ エラーが発生する
Open Source Routing Machine(OSRM) を Ubuntu サーバーにインストールしようとしましたが、ビルド フォルダーで Make を実行すると、21% で停止し、次のエラーが表示されます。
[ 21%] CXX オブジェクトの構築 CMakeFiles/OSRM.dir/Library/OSRM_impl.cpp.o
仮想メモリが使い果たされました: メモリを割り当てることができません
make[2]: * [CMakeFiles/OSRM.dir/Library/OSRM_impl.cpp.o] エラー 1
make[1]: * [CMakeFiles/OSRM.dir/all] エラー 2
make: * [すべて] エラー 2
$
オンラインで解決策を探したところ、ulimit の変更とスワップ メモリの追加に関する提案が見つかりましたが、どちらもうまくいきませんでした。どんな助けでも大歓迎です!
編集: OSRM 開発者に連絡したところ、2.5 GB の RAM が必要であることがわかりました。次の手順に従ってスワップファイルを追加することで、この問題を回避しました。http://digitizor.com/2011/02/06/create-swap-file-ubuntu-linux/
javascript - javascriptでOSRM(Open Source Routing Machine)ルートマーカーを設定するには?
OSRM オンライン デモ [1] とフロント エンド ソース コード [2] を試してみました
そこで、テキスト ボックスの開始位置と位置を設定できます。始点と終点の間にルート マーカーを設定するには、パスをクリックしてマップ上の必要なポイントにドラッグする必要があります。
JavaScriptを使用してこれらの中間点を動的に設定する方法はありますか?
linux - OSRM-Project の「make」で pthread_create が見つからない
Linux サーバーで OSRM プロジェクトをセットアップしようとしていますが、その間に問題が発生しています。依存関係の最新バージョンがあり、pthreads もインストールしてセットアップしました: pecl pthread install
次に、それをphpに追加し、phpを再コンパイルします。
以下は情報です。
Centos 6 64 ビット、OSRM プロジェクトをセットアップしようとしています。
酸っぱいをダウンロードしてから:
make でビルドが失敗する:
pthread_create が存在するかどうかの判断は、次の出力で失敗しました: Change Dir: /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp
ビルド コマンドを実行します:"/usr/bin/gmake" "cmTryCompileExec3544628293/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec3544628293.dir/build.make CMakeFiles/cmTryCompileExec3544628293.dir/build gmake[1]: Entering directory main' : CheckSymbolExists.c:(.text+0x16): /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp' への未定義の参照' gmake: *** [cmTryCompileExec3544628293/fast] エラー 2
/var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_report /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec3544628293.dir/CheckSymbolExists.c.o /usr/local/bin/cc -o CMakeFiles/cmTryCompileExec3544628293.dir/CheckSymbolExists.c.o -c /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c Linking C executable cmTryCompileExec3544628293 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3544628293.dir/link.txt --verbose=1 /usr/local/bin/cc
CMakeFiles/cmTryCompileExec3544628293.dir/CheckSymbolExists.c.o -o cmTryCompileExec3544628293 -rdynamic CMakeFiles/cmTryCompileExec3544628293.dir/CheckSymbolExists.c.o: In functionpthread_create' collect2: error: ld returned 1 exit status gmake[1]: *** [cmTryCompileExec3544628293] Error 1 gmake[1]: Leaving directory
ファイル /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c: /* */ #include
int main(int argc, char** argv) { (void)argv; #ifndef pthread_create return ((int*)(&pthread_create))[argc]; #else (void)argc; 0 を返します。#endif }
関数 pthread_create が pthread に存在するかどうかの判断は、次の出力で失敗しました: Change Dir: /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp
ビルド コマンドを実行:"/usr/bin/gmake" "cmTryCompileExec4016411170/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec4016411170.dir/build.make CMakeFiles/cmTryCompileExec4016411170.dir/build gmake[1]: ディレクトリ
/var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_report /var/www/html/osrm-backend/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec4016411170.dir/CheckFunctionExists.c.o /usr/local/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec4016411170.dir/CheckFunctionExists.c.o -c /usr/local/share/cmake-3.1/Modules/CheckFunctionExists.c Linking C executable cmTryCompileExec4016411170 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4016411170.dir/link.txt --verbose=1 /usr/local/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec4016411170.dir/CheckFunctionExists.c.o -o cmTryCompileExec4016411170 -rdynamic -lpthreads /opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: cannot find -lpthreads collect2: error: ld returned 1 exit status gmake[1]: *** [cmTryCompileExec4016411170] Error 1 gmake[1]: Leaving directory
/varに入る/www/html/osrm-backend/build/CMakeFiles/CMakeTmp'