問題タブ [map-directions]

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.

0 投票する
1 に答える
361 参照

android - Android アプリのカスタム マップ

アプリ用のカスタム マップを作成したいと考えています。私が欲しいものは次のとおりです。

  1. イベントの場所用に私たちがデザインしたカスタム マップになります (Google マップではありません)。
  2. すべての場所が Google マーカーのように地図上に表示されます。
  3. Googleマップと同じように、ユーザーが場所を選択し、現在の場所からその地域内の選択された目的地までの道順を取得してほしい(私の主な関心事)。

これに対する解決策はありますか?リンク、開始するための提案があれば教えてください。

これは非常にインプです。私のために..ありがとう。

0 投票する
1 に答える
1551 参照

api - Gmaps API で 1 つのウェイポイントを目的地として使用する

私は gmaps Api を使用して、市場のリスト (ウェイポイント) を訪れて在庫を確認する必要がある人のためのルートを作成しています。ルートの起点としてユーザーの家の場所を使用し、ウェイポイントとして市場の場所を使用しています。問題は、方向サービスを呼び出すときにプロパティを設定したため、どのウェイポイントがルートの目的地であるかがわからないことですoptimization = trueが、API にはルートをトレースする目的地が必要です。

必要なのは、最適化されたルートの最後のウェイポイントを目的地として使用するように API に指示する方法です。

0 投票する
1 に答える
798 参照

google-maps - Google マップのルート案内 UI

ここに示されている例のような Google マップのルート案内ユーザー インターフェイスを複製することは可能ですか?

つまり、Googleと同じように、出発地と到着地の住所、さまざまな交通手段のアイコンなどをウェブサイトに表示するために呼び出すことができるAPIはありますか? ここに私が欲しいものの写真があります:

ここに画像の説明を入力

0 投票する
2 に答える
397 参照

google-maps - Google ルート サービス API 3 が間違った結果をマップに返す

Google 方向サービスを使用して、以下に示す 2 つの住所の地図を検索しています

それを選択すると、Googleマップの方向を介して直接、正常に動作します

リンク : https://www.google.co.in/maps/dir/Keystone+Place-Blair's+Ferry,+6126+Rockwell+Drive+Northeast,+Cedar+Rapids,+IA+52402,+United+States/ Cottage+Grove+Place,+2115+1st+Avenue+Southeast,+Cedar+Rapids,+IA+52402,+United+States/@42.0179234,-91.6739759,13z/データ=!3m1!4b1!4m13!4m12!1m5 !1m1!1s0x87e4f0459aacb105:0x63c416fc0edc61d6!2m2!1d-91.6475339!2d42.039779!1m5!1m1!1s0x87e4f0d795c1b96b:0xa1ccbbf6400b01aa!2m2!1d-91.6362972!2d41.9959428?hl=en

方向サービスを使用している間は、同じようには機能しません。以下の例を見つけてください

http://jsfiddle.net/MRHQ4/291/ (著者へのクレジット:Shreerang Patwardhan)

Source と Destination から Address2 を削除すると正常に動作します

0 投票する
1 に答える
1834 参照

android - DirectionResult に null ルートとウェイポイントがある - Google Directions API

このプログラムの私の目標は、Google Directions API をポーリングし、Android アプリの MapView で Polyline によってコースをプロットすることでした。

ただし、DirectionsResultAPI 呼び出しから返されると、アクセスしようとするとNullPointerException が発生directionsResult.routes[0]します。directionsResult.geocodedWaypoints[0]

現在、maven リポジトリを使用して次のライブラリをインポートしています (build.gradle からの抜粋)。

デバッグ呼び出しをコメントアウトした AsyncTask 実装内の現在のコード:

私のデバッグプロセス:

  1. これは私の印刷されたリクエスト URL です。

    http://maps.googleapis.com/maps/api/directions/json?origin=40.426870,-86.925083&destination=40.430092,-86.921679&sensor=true

明らかに、それは短いが完全な呼び出しです。ポリラインポイントを含む脚の要素を使用します(これが私が求めているものだと思います)。この JSON は、読み取りから得た応答と同じhttpResponse.parseAsString()です。

  1. StackExchange の質問をいくつか見てみると、データが受信されるのを待つことを提案する人もいました。リクエストサイクルのすべての不可欠な部分の間に1秒の遅延を置きましたが、結果はありません。

  2. 呼び出しの他の部分はどれも null ではありませんでした。

  3. httpResponse.getStatusCode()200を返しました。

  4. httpResponse.getStatusMessage()OKを返しました。

DirectionsResult以下を使用して JSON を解析しようとするまで、すべてが正常に表示されますHttpResponse

DirectionsResultその後、 :routesとの 2 つのフィールドにアクセスすると NullPointerException が発生しgeocodedWaypointsます。

このクラスで同様の問題が発生した人はいますか? ここで解決されない場合は、適切な google-http-client ライブラリの GitHub ページに問題を提出するかもしれないと考えていました。

0 投票する
3 に答える
1258 参照

javascript - 大きすぎるパスを分割すると、Google Maps Elevation Service の応答が不正確になる

これはある程度詳細な質問です。最初に状況を説明し、次に私の実装を説明し、最後に質問をして理解を深めてください。

4 月 4 日の時点で更新が追加され、問題は 1 つの保留中の問題に絞り込まれています。最新情報については、この質問の下部を参照してください。

TLDR;

Google Maps Directions API から返された長いルートがあり、そのルートの標高チャートが必要です。残念ながら、GET 経由で要求され、URL の最大長が 2.048 文字を超えているため、機能しません。リクエストを分割しました。Promises を使用して正しい処理順序を保証します。しかし、標高データはルート全体で常に完全であるとは限らず、常に正しい順序で表示されるとは限らず、常に指定されたパスに従っているとは限らず、標高間の位置が数 km にまたがることがあります。

序章;

Google Maps DirectionsService レスポンスの標高チャートを作成しようとしていますが、ルートが長すぎるという問題に直面しています (これは、overview_path ごとの LatLng の数ではなく、距離に関連していないようです)。これは、ElevationService が 経由でリクエストGETされ、URL の最大長が 2048 文字であることが原因です。この問題はSO here にも記載されています

実装;

overview_path私は、DirectionsService (プロパティ) によって返されたパスをバッチに分割し、結果 ( elevationsElevationService メソッドによって返されたgetElevationsAlongPath)を連結するために、Google よりも賢く (実際にはそうではありませんが、少なくともそれを回避する方法を見つけようとしている) と考えました。.

  • 最良の詳細レベルを取得するために、バッチごとに 512 サンプルで ElevationService をクエリします。
  • また、ElevationService はサンプルをパスの長さに分散させるため、バッチごとの最大数を設定しLatLng、フル パスを処理するために必要なバッチの数を確認します ( totalBatches = overview_path.length / maxBatchSize)。
  • 最終的にルート案内を均等に広げると、完全なルートについて同じレベルの詳細を取得しようとします ( batchSize = Math.ceil(overview_path.length / totalBatches))。

ElevationService は非同期的に動作しますが、最初に setTimout を使用し、現在は Promises を使用している他の SO ユーザーの助けを借りて、すべての要求が正しい順序で処理されるようにしています。

私のコード

サイドノート;

サービスが持つ 8 つのウェイポイントの制限に対処するために、DirectionService のリクエストもバッチ処理していますが、8 つ以下のウェイポイントの問題にも直面しているため、これが問題ではないことを確認できます。

問題;

私が直面している問題は次のとおりです。

  • 標高データは常にルートの完全なパスに従っているとは限りません。つまり、チャートの最後の標高ポイントはルートの終点から (遠く) 離れています。
  • 次のタスクの実行を約束がまだ待っていないように見えるかのように、標高データがランダムな順序で表示されることがあります。
  • 標高データは、特定のバッチで提供された特定LatLngの に常に従うとは限りません(スクリーンショットを参照)。overview_path
  • 標高間距離データはたくさんあります。LatLngバッチごとに最大 200 秒の均等に一致するバッチ サイズの 512 サンプルを要求している間、複数の km にまたがることがあります。

従うように指示されたoverview_pathに従っていない標高データ

Promises を使用して (および setTimtout でタイミングを合わせる前に) ElevationService をバッチ処理すると、すべての問題が解決すると考えましたが、解決した唯一の問題は、2.048 文字のリクエスト URL を超えず、上記の新しい問題に直面していることです。

助けていただければ幸いです

また、250レップを入れたいと思います。すぐにこの質問に報奨金を出しますが、現時点ではそれは不可能です。後で報奨金を追加して、記載されている問題を解決した回答に報奨金を授与できますので、お気軽に返信してください。250レップ。報奨金は、私を正しい方向に向けてくれたあなたへの感謝を示すために授与されました.

読んで返信してくれてありがとう!

4 月 4 日に更新され、保留中の問題が 1 つ残っています (現時点でわかる限り)。

ランダムな順序での標高の問題に取り組みました

ルート検索結果の動作に一貫性がないことに気付いたとき、いくつかの問題に取り組むことができました。これは明らかな理由で発生しました。非同期呼び出しがスケジュールされることが「約束」されていなかったため、順序が正しい場合もあれば、そうでない場合もありました。マーカーが正しく表示されていた (キャッシュされていた) ため、最初はこれに気づきませんでした。

上下間距離の問題に取り組みました

標高データを表示する div は幅が 300 ピクセルしかなく、多くのデータポイントが含まれていました。このように幅が狭いため、十分な数のポイントにカーソルを合わせることができず、互いに離れた位置にある標高ポイントがトリガーされました。

標高データがルートに沿って表示されない問題

どういうわけか、この問題も解決しましたが、幅が広いか、方向の順序が「有望」であるかどうかはわかりません。

保留中の問題: 標高データは必ずしも完全ではありません

唯一残っている問題は、標高データが常に完全なパスをカバーしているとは限らないことです。これは、コンソールにいくつかのメッセージを記録すると、すべての Promise-then が完了していない時点で標高グラフが描画されていることがわかるため、Promising ロジックのエラーが原因であると考えられます。 Query Limit エラーは、Google Maps API によって返されます。

Over Query Limit エラーが返されたときに同じチェーンを再起動するにはどうすればよいですか? 同じ関数を再度解決setTimeout(...)しないようにしましたが、単に起動しましたが、Promise は再起動されたバッチを解決していないようで、クエリ制限を超えていません。現在、これは私が設定した方法です(方向と仰角の両方について):

0 投票する
1 に答える
156 参照

javascript - 地図上に経路のオーバーレイを作成する方法

Google Maps API はまったくの初心者です。ここに表示されているものと同様のアプリケーションに取り組んでいます: http://www.wandelknooppunt.be/routeplanner?kaart=kempense-heide

ノードをマップに追加できましたが、マップ上のノード間に経路を追加する方法がわかりません。ユーザーがノードをクリックしてルートを作成できるようにする必要があるため、ルート計画 API は解決策ではないようです。ノードと経路の両方が固定されています。

私の質問は、データベース内の 2 つのノード間の経路 (ルート) を保存する方法です。(保存したい経路は必ずしも 2 つのノード間の最速/最短ルートではありませんが、常に車でアクセスできる公共ルートになります)

0 投票する
1 に答える
4605 参照

ios - IOS Objective-C アプリで Google マップにマーカー画像を追加する

道順を示す地図があります。指示をタップして注釈を表示することはできますが、私がやろうとしているのは、指示座標にマーカーを追加することです。現在使用しているコードは次のとおりです。

明確にするために、注釈とポリラインはどちらも問題ありません。マーカーが表示されないだけです。