Google Mapの統合、測定距離を取得します -- c# フィールド と winforms フィールド と google-maps フィールド と google-api フィールド 関連 問題

Google Map Integration, get measured distance












0
vote

問題

日本語

こんにちは、winformsで実行中のログを開発するプロセスにいます。誰かがGoogle Mapsの統合のための良いリソースを持っているかどうかを知りたいのですが。最後の目標は、「距離」列のセルをダブルクリックして新しいフォームを開くことです。新しいフォームには、ユーザーがGoogleの距離測定ツールを使用して自分のルートを追跡できるGoogleマップがあります。そのルートを受け入れ、ウィンドウを閉じて、トレースされたルートの距離(マイル)をセルに入力します。

Google Mapsの統合にはまったく新しい、C#アプリケーションで実際には可能であれば、私の目標を達成するためにいくつかのサンプルコードを見つけることができる正しい方向に私を指してください。

事前にありがとうございました。

英語

Hello I'm in the process of developing a running log in WinForms. I would like to know if anyone has some good resources for Google Maps integration. The end goal is to have a user double click on a cell in the "Distance" column and it will open a new form. The new form would have a Google Map on it where a user could trace their route using Google's distance measurement tool. Accepting that route would close the window and enter the traced route's distance (miles) into the cell.

I am completely new to Google Maps integration, if it is in fact possible with a C# application. Please point me in the right direction where I can find some sample code to accomplish my goal.

Thanks in advance.

</div
           

回答リスト

2
 
vote
vote
ベストアンサー
 

Google Maps APIを使用する必要があります。 ありがたいことに、これは非常に単純で、サポートされているJSONを使用しています。

を見てみましょう: http://code.google.com/apis/maps/documentation/distancematrix/

残念ながら、Googleはあなたが入力した2つのポイントの間の最良のルートを選択します。これはあなたが最速のルートを実行しなかったならば、それほど使いません。

これと戦うために、ここに見てください。

これにより、ウェイポイントを追加することができ、したがっておそらくより役に立ちますが、おそらくこれらのウェイポイントを作成するためのユーザーがおそらく必要になります。

覚えておくべき最終的なことは、あなたが多数の要求を得ることを期待するならば、Googleは現在開発者にこれらのサービスを使用するように課金されています。非ビジネスユーザーとして、1日あたり2,500の要求に制限されています要求ごとに最大8つのウェイポイントがあります。

 

You will need to use the google maps API. Thankfully this is quite simple and uses JSON, which is well supported.

Have a look at: http://code.google.com/apis/maps/documentation/distancematrix/

Unfortunately google will choose the best route between the two points you enter, which isn't much use if you didn't run the fastest route.

To combat this, have a look here: http://code.google.com/apis/maps/documentation/directions/

This allows you to add waypoints, and is therefore perhaps more useful, but you will probably need the user to create these waypoints themselves.

A final thing to remember is that if you expect to be getting a large number of requests - google is now charging developers to use these services. As a non-business user you are limited to 2,500 requests per day with a maximum of 8 waypoints per request.

</div
 
 
4
 
vote

プロジェクトでこのクラスを使用して2つの場所の間の距離を取得 newtonsoft.json.linqから https://www.nuget.org/packages/ newtonsoft.json /

<事前> <コード> using System; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json.Linq; namespace Management { class DeliveryMapInfo { string origin = @""; //Write the address of the origin here public DeliveryMapInfo() { } public int getDistanceTo(string destination) { System.Threading.Thread.Sleep(1000); int distance = -1; string url = "http://maps.googleapis.com/maps/api/directions/json?origin=" + origin + "&destination=" + destination + "&sensor=false"; string requesturl = url;string content = fileGetJSON(requesturl); JObject _Jobj = JObject.Parse(content); try { distance = (int)_Jobj.SelectToken("routes[0].legs[0].distance.value"); return distance / 1000;// Distance in KMS } catch { return distance / 1000; } } protected string fileGetJSON(string fileName) { string _sData = string.Empty; string me = string.Empty; try { if (fileName.ToLower().IndexOf("http:") > -1) { System.Net.WebClient wc = new System.Net.WebClient(); byte[] response = wc.DownloadData(fileName); _sData = System.Text.Encoding.ASCII.GetString(response); } else { System.IO.StreamReader sr = new System.IO.StreamReader(fileName); _sData = sr.ReadToEnd(); sr.Close(); } } catch { _sData = "unable to connect to server "; } return _sData; } }

}

あなたの考えの多くはあなたが使用したいのか、つまり何のAPI、つまりです。距離行列、方向、ジオコーディングなど 注意:「/ DSIOVED /」 私の使いのためのあなたの使い方のための道順が見つかりました、私の使いのために、距離を見つけて、持続時間を見つけることができるので ただし、JSONファイルのサイズは他のJSONファイルよりも大きいです。 あなたの判断を使う。

<事前> <コード> string url = "http://maps.googleapis.com/maps/api/directions/json?origin=" + origin + "&destination=" + destination + "&sensor=false";

<事前> <コード> distance = (int)_Jobj.SelectToken("routes[0].legs[0].distance.value"); 例えば:

jas jsonファイル内の構造は次のとおりです。

<事前> <コード> -Routes - Bound - NorthEast - SouthWest - Copyrights - Legs - Steps - duration - distance - endlocation - maneuver - htmlinstructions - polyline - startlocation - travelmode - Distance - text - value - Duration - text - value - StartAddress - EndAddress - EndLocation - lat - lng - StartLocation - lat - lng - Overview Polyline - Summary - Warnings - Waypoint Order - Status
 

Use this Class in your project to get distance between two places You can get Newtonsoft.Json.Linq from https://www.nuget.org/packages/newtonsoft.json/

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json.Linq;  namespace Management {     class DeliveryMapInfo     {     string origin = @""; //Write the address of the origin here     public DeliveryMapInfo() { }     public int getDistanceTo(string destination)     {         System.Threading.Thread.Sleep(1000);         int distance = -1;         string url = "http://maps.googleapis.com/maps/api/directions/json?origin=" + origin + "&destination=" + destination + "&sensor=false";         string requesturl = url;string content = fileGetJSON(requesturl);         JObject _Jobj = JObject.Parse(content);         try         {             distance = (int)_Jobj.SelectToken("routes[0].legs[0].distance.value");             return distance / 1000;// Distance in KMS         }         catch         {             return distance / 1000;         }     }     protected string fileGetJSON(string fileName)     {         string _sData = string.Empty;         string me = string.Empty;         try         {             if (fileName.ToLower().IndexOf("http:") > -1)             {                 System.Net.WebClient wc = new System.Net.WebClient();                 byte[] response = wc.DownloadData(fileName);                 _sData = System.Text.Encoding.ASCII.GetString(response);              }             else             {                 System.IO.StreamReader sr = new System.IO.StreamReader(fileName);                 _sData = sr.ReadToEnd();                 sr.Close();             }         }         catch { _sData = "unable to connect to server "; }         return _sData;     } } 

}

A lot of your idea depends on what API you want to use, ie. Distance Matrix, Directions, Geocoding, etc. Notice: "/directions/" I found directions as most complete api for my use, since it can geocode, find the distance, find durations... etc. However, the size of directions JSON file is larger than other JSON files. Use your judgment.

string url = "http://maps.googleapis.com/maps/api/directions/json?origin=" + origin + "&destination=" + destination + "&sensor=false"; 

and

distance = (int)_Jobj.SelectToken("routes[0].legs[0].distance.value"); 

for eg:

The Structure inside Directions JSON file is:

-Routes      - Bound         - NorthEast         - SouthWest     - Copyrights     - Legs         - Steps             - duration             - distance             - endlocation             - maneuver             - htmlinstructions             - polyline             - startlocation             - travelmode         - Distance             - text             - value         - Duration             - text             - value         - StartAddress         - EndAddress         - EndLocation             - lat             - lng         - StartLocation             - lat             - lng     - Overview Polyline     - Summary     - Warnings     - Waypoint Order  - Status 
</div
 
 

関連する質問

0  生産を命中することは決してないシンプルなアプリのためにOAuthConsentを生成しますか?  ( Generate a oauthconsent for a simple app which will never hit production ) 
私は自分の使用のためのシンプルなJavaアプリケーションを書いています。これはExcelの文書をスキャンし、それからいくつかのイベントを抽出します。次の段階では、Googleアカウントにサインインして、Google Calendar APIを使用してそれらのイ...

13  Googleでは、企業はAPIとして機能を使用しましたか?私はそれを使いたいのですが、私は何も得られません  ( Does google allow businesses to use did you mean feature as an api i would l ) 
Google APIを使用したいのですが、機能を意味しましたか。そのため、基本的に私はGoogle検索に単語を送信し、Googleが正確なヒットを見つけるか、または私が使用する「あなたは「あなたは私が使うのを意味しました」と言うコードを書いています。 それ...

0  Github APIを承認する方法  ( How to authorize github api ) 
Developers.google.comでGithub APIを承認する方法を知っていますか? APIリストにGitHub APIが見つかりませんでした。スコープパラメータとして使用するために空白を記入する必要があるどのURLをどのURLに記入してもらえま...

0  Google API OAUTH2モバイルWebアプリケーションでのアクセス?  ( Google api oauth2 access with mobile web application ) 
JavaScriptとHTMLを使用してモバイルアプリケーションを書いていて、PhoneGapを使って梱包するつもりですので、最後にネイティブなものになります。 このアプリの1つの機能は、「Google Docsからのインポート」になります。私はアプリのため...

0  モバイルWebブラウザでGoogle Earth APIを開く  ( Opening google earth api in mobile web browser ) 
Google Earth APIを使ってWebサイトを書きました。 モバイルブラウザを介してこのサイトを開きたいのですが、次のエラーが表示されます。 「Google EarthのプラグインはWinとMacのみに利用可能です」。 どうやってそれを乗り越えること...

5  Google Drive - 指定されたフォルダ内のすべてのファイルをリストする方法  ( Google drive how to list all files in a specified folder ) 
こんにちは私はこの状況でここに立ち往生しています、私はさまざまなアプローチを試してみましたが、私は私が後のものを手に入れることはできません。 状況: Googleドライブでホストされているフォルダ内のファイルが多数あります。 たとえば、レポートの単一のクライア...

1  Googleカレンダーイベント作成の送信通知を送信します  ( Google calendar event creation send notifications ) 
私は、Googleカレンダーでイベント作成時に参加者が参加していることを誰かが知っていたかどうか疑問に思いました。イベントマニュアルを作成するとき、私は望むようにイベントを送ることができます。しかし、JavaScriptクライアントライブラリを使用してAPIを...

3  Google APIは拡張プロパティによるクエリに連絡します  ( Google api contacts query by extended property ) 
私は私のアプリケーションからextcodという名前の外部コードプロパティを持つGoogle ContactsからGoogleの連絡先への連絡先をアップロードしました。 <事前> <コード> ExtendedProperty property = new Ext...

0  Google ADS APIにリクエストヘッダーを設定する方法  ( How to set request header in google ads api ) 
私のマネージャアカウントの下のADSアカウントの予算を提案したい。次のYAMLファイルがあります。 <事前> <コード> developer_token: 13245 login-customer-id: 1324567891 customer-id: 132...

0  所定の点までの現在位置の間の駆動方向【重複】  ( Driving direction between current location to a given point ) 
この質問はすでにここで答えを持っています 閉じる 8年前> 可能な重複: Androidは、2つのPoi-Sを備えたマップビューのルートを描画します。 / a> 現在の場所の間の経路(駆動方向)を表示/「描く」、 どうすれば...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有