Gaodeマップについては、さらにエッセイがあります。
1。ビジネスの説明
対応するアプリビジネスには2つのタイプのメンバーがいます。1つはサービス担当者であり、もう1つはサービス担当者です。主に関数を実現し、アプリのサービス担当者の場所をタイムリーに見つけます。次に、サービス担当者とサービス担当者がアプリにログインしたときに提供される緯度と経度を通じて、サービス担当者とサービス担当者の間の距離単位mが計算されます。
The following is the entire detailed process, from creating a Gaode corresponding application (I won’t talk about it if you register here)-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2。サーブレットに対応するガードマップアプリケーションを作成し、独自のクラウドマップデータベーステーブルを作成します
アカウントを登録した後、ログインして右上隅のコンソールをクリックします。次のインターフェイスが表示されます。スクリーンショットを取りました。
もちろん、これは私が登録したインターフェイスです。登録しない場合は、キーを取得してください。アプリケーションを作成するには、ここをクリックしてください。私たちはここでそれを処理するためのサーブレットであるため、アプリケーション名を自由に取得できます。
関連するビジネスなので、オプションはWebサービスAPIです。ここでは、キーを取得するためにクリックすると、以下のスクリーンショットが表示されます。
このステップが完了したら、必要なクラウドチャートを作成し、コンソールを入力し、マウスを選択してデータに移動し、以下のデータ管理ステーション(Web)を選択してインターフェイスを入力してクラウドチャートを追加します。
以下は、入った後のスクリーンショットです。このスクリーンショットの後、テキストで直接説明します。
上記のスクリーンショットは、私が作成した結果です。ここでは、最初に右上隅にあるデータテンプレートのダウンロードをクリックする必要があります。テンプレートをダウンロードした後、対応するデータを変更し、必要なフィールドを追加し、新しいマップをクリックして
変更されたテンプレートは、クラウドライブラリにインポートされます。このテンプレートは、実際にはExcelによってエクスポートされるデータベーステーブルです。以下に、作成したテーブルを直接インターセプトします。このテーブルに2つのフィールドを追加し、1つのフィールドをインデックスフィールドに設定しました。
レッドフィールド名は保存する必要があることを忘れないでください(コンテンツは自由に変更できます)。これはシステムテンプレートに含まれています。最後の2つの黒いフィールドはそれ自体で追加され、自由に変更できます。 Gaode Cloud Map Serverにアップロードしても、変更できます。
上記のテーブルをアップロードすると、以前のデータ管理(Web)を開き、前のマップのインターフェイスが表示されます。左側にマップブロックが表示されます。クリックすると、アップロードした人の詳細情報と、アップロードされた緯度と経度を通じてマップに表示される黄色の5つの尖った星ロゴが表示されます。以下にスクリーンショットがあります
このテーブルに表示されるフィールドは、私によって変更されており、現在はExcelにアップロードされていません。列のタイトルをクリックすると、一連の設定ができます。詳細は説明しません。
インデックスフィールドの設定について話してください。
入力後、sortインデックスをフィルタリングすることを選択しました - >フィルタリングインデックスは、ユーザーの新しく追加されたフィールドのフィルター条件を設定します。
上のクラウド画像で撮影したユーザータイプを使用しています。私もあなたのためにそれの写真を撮ります。
この時点で、クラウドマップの作成とアップロード手順全体を完了します。 。 。次に、呼ばれる方法について説明します。
2.サーブレットクエリクラウド画像ライブラリのリクエスト方法
1.最初に開発者のドキュメントアドレスを投稿します。
http://lbs.amap.com/yuntu/reference/cloudsearch/自分でチェックすることをお勧めします
ここでは、サーブレットはクラウド取得APIを使用し、対応するアプリはクラウドストレージAPIを使用します。明日、このインターフェイスに対応するiOSクライアントのタイムロケーションに関する記事が追加されます。
以下は、スプライスされたURL形式です。 GETで関連するデータを取得するには、URLに直接更新を入力します。
http://yuntuapi.amap.com/datasearch/local?tableid=568bd32b305a2a31f604c650&city=beijing&keywords =%20&filter=type:サービススタッフの制限= 15&ページ= 1&キー=? (ここのパラメーターのキーはすべてあなた自身のものです)
以下は、カプセル化されたリクエストメソッドコードです
パッケージヘルパー。 java.io.bufferedreader; Import java.io.ioexception; Import java.io.inputStreamReader; Import java.io.printwriter; Import java.io.unsupportedencodingception; Import java.net.url; Import java.net.url; import java.net.urlconty; java.util.map; public class httprequest { /** *指定されたurl * * @param url * urlにgetメソッドリクエストを送信してリクエストを送信します * @param param * requestパラメーター、リクエストパラメーターはname1 = value1&name2 = value2の形式でなければなりません。 * @return url response rexime resime resumped remite resourceで表されるリモートリソースの結果bufferedreader in = null; try {string urlnamestring = url + "?" + param; url realurl = new url(urlnamestring); // url urlconnection connection = realur.openconnection()間の接続を開きます。 //一般リクエスト属性connection.setRequestProperty( "Accept"、 "*/*"); connection.setRequestProperty( "Connection"、 "Keep-Alive"); connection.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); //実際の接続connection.connect(); //すべての応答ヘッダーフィールドマップ<文字列、リスト<文字列>> map = connection.getheaderfields(); //すべての応答ヘッダーフィールド(文字列キー:map.keyset()){system.out.println(key + "--->" + map.get(key)); } // bufferedreader入力ストリームを定義して、urlの応答を読み取ります= new BufferedReader(new inputstreamReader(connection.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){system.out.println( "get要求を送信するときに例外が発生しました!" + e); e.printstacktrace(); } //最終的にブロックを使用して入力ストリームを閉じます{if(in!= null){in.close(); }} catch(例外E2){e2.printstacktrace(); }} return result; } /** *指定されたurl * @param url * urlにリクエストを送信してリクエストを送信します * @param param *リクエストパラメーター、要求パラメーターはname1 = value1&name2 = value2の形式である必要があります。 * @return応答 */ public static string sendpost(string url、string param)で表されるリモートリソースの結果{printwriter out = null; bufferedreader in = null;文字列結果= ""; try {url realurl = new URL(url); // urlconnection conn = realur.openconnection()の間の接続を開きます。 //一般リクエスト属性conn.setRequestProperty( "Accept"、 "*/*"); conn.setRequestProperty( "Connection"、 "Keep-Alive"); conn.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); // POSTリクエストを送信するには、次の2行をconn.setDoOutput(true)に設定する必要があります。 conn.setDoinput(true); // urlConnectionオブジェクトに対応する出力ストリームを取得= new PrintWriter(conn.getOutputStream()); //リクエストパラメーターを送信してください。print(param); //フラッシュ出力ストリームのbuffer out.flush()。 // bufferedReader入力ストリームを定義して、URL応答を読み取ります= new BufferedReader(new inputStreamReader(conn.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){System.out.println( "POSTリクエストを送信するときに例外が発生しました!" +e); e.printstacktrace(); } //最終的にブロックを使用して出力ストリームを閉じ、入力ストリームは最終的に{if(out!= null){out.close(); } if(in!= null){in.close(); }} catch(ioException ex){ex.printstacktrace(); }} try {result = new String(result.getBytes( "iso8859-1")、 "utf-8"); } catch(unsupportedencodingexception e){// todo auto-enerated catch block e.printstacktrace(); } return result; }}以下はリクエスト方法です
String Mapparameter = new String( "TableId = 568bd32b305a2a31f604c650&city = beijing&keywords =%20&filter = type:masseur limit = 15&page = 1&key =?")。
string returnResult = httprequest.sendpost( "http://yuntuapi.amap.com/datasearch/local"、mapparameter);
out.println( "<script> alert("+returnResult+"); </script>");
ここでクエリするフィルタリング条件私たちが作成したフィールドです(そして、それをインデックスフィールドに設定します)タイプ:Massager ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.サーブレットは、2つの緯度と長期の間の距離を計算します
これは、緯度と経度を通じてサーブレットとサービス担当者の間の距離です。これは実際には1対多くの関係です。奉仕されている1人は、サービスを提供するn人に対応できます。場所にあるサービス担当者の緯度と経度は、今回検索したすべてのサービス担当者の緯度と経度と一致し、距離を計算します。
以下は、距離を計算する方法です。これは、すべての主要なマップに適用される一般的な方法です。
public static double getdistance(latlng start、latlng end){double lat1 =(math.pi/180)*start.latitude; double lat2 =(math.pi/180)*end.latitude; double lon1 =(math.pi/180)*start.longitude; double lon2 =(math.pi/180)*end.longitude; double r = 6371; double d = math.acos(math.sin(lat1)*math.sin(lat2)+math.cos(lat1)*math.cos(lat2)*math.cos(lon2-lon1))*r; d*1000を返します。 }パラメーターでは、ダブルタイプの2つのフィールドを含むクラスを自分で作成できます。 1つは精度を表し、もう1つは緯度を表します。
この方法を使用して生成されるプロセス:ユーザーがサービス担当者のアプリインターフェイスを開くと、インターフェイスを要求してサービス担当者のリストを読み取ります。この時点で、サーブレットは、ガードクラウドマップのサービス担当者情報を一度照会する必要があります。クエリの数を制限してから照会できます。各データの緯度と経度はループされ、サービス担当者によって開かれたアプリインターフェイスによって緯度と経度が伝達され、相対距離を計算します。明日iOSエッセイを公開する場合があります。これは、このインターフェイスに対応し、主にiOSに実装されたタイムロケーションクラウドマップデータベースのコードに投稿されます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。