Es wird mehr Aufsätze über Gaode Map geben.
1. Geschäftsbeschreibung
Es gibt zwei Arten von Mitgliedern im entsprechenden App -Geschäft: Einer ist das Servicepersonal und das andere ist das Servicepersonal. Es erkennt hauptsächlich die Funktionen und findet den Standort des Servicepersonals in der App rechtzeitig. Anschließend wird die Entfernungseinheit M zwischen dem Servicepersonal und dem Servicepersonal durch einen Breitengrad und Längengrad berechnet, der bereitgestellt wird, wenn sich das Servicepersonal in die App anmeldet.
Das Folgende ist der gesamte detaillierte Vorgang, aus der Erstellung einer entsprechenden Gaode-Anwendung (ich spreche nicht darüber, wenn Sie sich hier registrieren).
2. Erstellen Sie die Gaode -Kartenanwendung, die dem Servlet entspricht, und erstellen Sie Ihre eigene Cloud -Map -Datenbanktabelle
Melden Sie sich nach der Registrierung eines Kontos an und klicken Sie in der oberen rechten Ecke auf die Konsole. Die folgende Schnittstelle wird angezeigt. Ich habe einen Screenshot gemacht.
Dies ist natürlich die Schnittstelle, die ich registriert habe. Wenn Sie sich nicht registrieren, erhalten Sie einfach den Schlüssel. Klicken Sie hier direkt, um Ihre Anwendung zu erstellen. Sie können den Bewerbungsnamen nach Belieben erhalten, da wir hier Servlets sind, um ihn zu behandeln.
Verwandte Unternehmen, also ist die Option die Web -Service -API. Hier klicken Sie, um den Schlüssel zu erhalten, und der Screenshot unten wird angezeigt.
Nach Abschluss dieses Schritts können wir das gewünschte Cloud -Diagramm erstellen, die Konsole eingeben, die Maus aus auswählen, die zu meinen Daten wechselt, und dann die Datenverwaltungsstation (Web) unten auswählen, um die Schnittstelle einzugeben, um Cloud -Diagramme hinzuzufügen.
Unten ist ein Screenshot nach dem Eintritt. Nach diesem Screenshot werde ich es direkt im Text erklären.
Das obige Screenshot ist das Ergebnis, das ich erstellt habe. Hier müssen wir zunächst auf die Datenvorlage in der oberen rechten Ecke klicken. Nach dem Herunterladen der Vorlage, ändern Sie die entsprechenden Daten, fügen Sie die benötigten Felder hinzu und klicken Sie dann auf die neue Karte zu
Die modifizierte Vorlage wird in die Cloud -Bibliothek importiert. Diese Vorlage ist eigentlich eine von Excel exportierte Datenbanktabelle. Unten fasse ich die Tabelle, die ich erstellt habe, direkt ab. Ich habe dieser Tabelle zwei Felder hinzugefügt und ein Feld in das Indexfeld gesetzt.
Denken Sie daran, dass der rote Feldname erhalten bleiben muss (der Inhalt kann nach Belieben geändert werden), was in der Systemvorlage enthalten ist. Die beiden schwarzen Felder am Ende werden von selbst hinzugefügt und können nach Belieben geändert werden. Selbst wenn Sie es auf den Gaode Cloud Map -Server hochladen, kann es geändert werden.
Nach dem Hochladen der obigen Tabelle öffnen Sie die vorherige Datenverwaltung (Web) und die Schnittstelle der vorherigen Karte wird angezeigt. Auf der linken Seite wird ein Kartenblock angezeigt. Klicken Sie ein und Sie sehen die detaillierten Informationen der von Ihnen hochgeladenen Person sowie das gelbe Fünf-Punkte-Sternlogo, das auf der Karte über den hochgeladenen Breitengrad und Längengrad angezeigt wird. Es gibt Screenshots unten
Die in dieser Tabelle angezeigten Felder werden von mir geändert und gerade jetzt nicht in Excel hochgeladen. Wenn Sie auf den Titel in der Spalte klicken, können Sie eine Reihe von Einstellungen erstellen. Ich werde nicht auf Details eingehen.
Sprechen Sie einfach über die Einstellungen des Indexfeldes.
Nach der Eingabe entschied ich mich, den Sortierindex zu filtern-> Filter Der Sortierindex besteht darin, eine Filterbedingung für die neu hinzugefügten Felder des Benutzers festzulegen.
Ich verwende den Benutzertyp, der im obigen Cloud -Bild aufgenommen wurde. Ich werde auch ein Foto davon für Sie machen.
Zu diesem Zeitpunkt werden wir die gesamten Cloud -Map -Erstellungsschritte ausführen und hochladen. . . Als nächstes werde ich über die mitgerufene Methode sprechen.
2. Anforderungsmethode für die Servlet -Abfrage Cloud Image Library
1. Erster Beitrag die Dokumentenadresse des Entwicklers:
http://lbs.amap.com/yuntu/reference/cloudsearch/ Ich schlage vor, Sie überprüfen es selbst
Hier verwendet das Servlet die Cloud -Abruf -API, und die entsprechende App verwendet die Cloud -Speicher -API. Möglicherweise wird morgen morgen ein Artikel über die Zeitstandort des iOS-Clients, das dieser Schnittstelle entspricht, hinzugefügt.
Unten ist das Spleiß -URL -Format. Geben Sie die Aktualisierung direkt in die URL ein, um die relevanten Daten durch GET zu erhalten.
http://yuntuapi.amap.com/datasearch/local?tableId=568bd32b305a2a31f604c650&city=beijs&Keywords=%20&filter=type: Servicepersonal Limit = 15 & page = 1 & key =? (Die Parameterschlüssel hier sind alle Ihre eigenen)
Im Folgenden finden Sie den eingekapselten Anforderungsmethodencode
Pakethelfer; Import Java.io.BufferedReader; Import Java.io.ioxception; Import Java.io.inputStreamReader; Import Java.io.printwriter; Import Java.io.unsupportedencodingException; Import Java.Net.url; java.util.map; öffentliche Klasse httprequest { /** * Senden Sie die Anforderung zur Methode GET an die angegebene URL * * @param URL * URL, um die Anforderung * @param Parameter * Anforderungsparameter zu senden. * @return URL -Antwort Ergebnis der Remote -Ressource, die durch die Remote -Ressource dargestellt wird BufferedReader in = null; Versuchen Sie {String urlnamestring = url + "?" + Param; URL realUrl = neue URL (urlnamestring); // Öffnen Sie die Verbindung zwischen der URL -URLConnection Connection = RealUrl.Openconnection (); // Setzen Sie die allgemeine Anfrage -Attributverbindung. Connection.SetRequestProperty ("Verbindung", "Keep-Alive"); Connection.SetRequestProperty ("Benutzer-Agent", "Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)"); // eine tatsächliche Verbindungsverbindung erstellen.Connect (); // Alle Antwort -Header -Felder karten <String, Liste <String >> map = Connection.GetheaDerFields (); // Alle Antwort-Header-Felder für (String-Schlüssel: map.keyset ()) {System.out.println (Schlüssel + "--->" + map.get (Schlüssel)); } // Definieren Sie den BufferedReader -Eingangsstream, um die Antwort der URL in = neuer BufferedReader (neuer InputStreamReader (Connection.GetInputStream ())) zu lesen; Stringlinie; while ((line = in.readline ())! = null) {result += line; }} catch (Ausnahme e) {System.out.println ("Ausnahme ist beim Senden einer GET -Anfrage aufgetreten!" + e); E. printstacktrace (); } // Verwenden Sie schließlich Block, um den Eingabestream schließlich zu schließen. {Try {if (in! = Null) {in.close (); }} catch (Ausnahme e2) {e2.printstacktrace (); }} Rückgabeergebnis; } /** * Senden Sie eine Anforderung an die angegebene URL * @Param URL * URL, um den Anforderungsanforderung zu senden * @return Antwort Ergebnis der Remote -Ressource, die durch */ public static String SendPost (String -URL, String -Param) {printwriter out = null; BufferedReader in = null; String result = ""; Versuchen Sie {url realurl = new URL (URL); // Öffnen Sie die Verbindung zwischen urlConnection conn = realUrl.openconnection (); // Setzen Sie das allgemeine Anfrageattribut Conn.SetRequestProperty ("Accept", "*/*"); Conn.SetRequestProperty ("Verbindung", "Keep-Alive"); Conn.SetRequestProperty ("User-Agent", "Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1)"); // Um eine Postanforderung zu senden, müssen Sie die folgenden zwei Zeilen auf Conn.SetDoOutput (True) festlegen. Conn.SetDoInput (true); // den Ausgabestream abrufen, der dem urlConnection -Objekt entspricht = neuer Pressewriter (conn.getOutputStream ()); // den Anforderungsparameter aussenden.print (param); // puffer out.flush () des Flush -Ausgangsstroms; // Definieren Sie den BufferedReader -Eingangsstream, um die URL -Antwort in = neuer BufferedReader (New InputStreamReader (Conn.GetInputStream ())) zu lesen; Stringlinie; while ((line = in.readline ())! = null) {result += line; }} catch (Ausnahme e) {System.out.println ("Ausnahme ist beim Senden einer Postanforderung aufgetreten!" +e); E. printstacktrace (); } // Verwenden Sie schließlich blockiert, um den Ausgabestream und den Eingabestream schließlich zu schließen. {Try {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 (unportedenCodingException e) {// todo automatisch generierter Catch-Block e.printstacktrace (); } Rückgabeergebnis; }}Das Folgende ist die Anforderungsmethode
String mapparameter = new String ("tableid = 568bd32b305a2a31f604c650 & City = Beijing & Keywords =%20 & filter = Typ: masseur limit = 15 & page = 1 & key =?").
String returnResult = httprequest.sendPost ("http://yuntuapi.amap.com/datasearch/local", mapparameter);
out.println ("<Script> alert ("+returnResult+"); </script>");
Die Filterbedingung, die wir hier abfragen ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Servlet berechnet den Abstand zwischen zwei Breiten und Längen
Dies ist der Abstand zwischen dem Servlet und dem Servicepersonal durch Breitengrad und Länge. Dies ist eigentlich eine Eins-zu-Viele-Beziehung. Eine Person, die bedient wird, kann N -Personen entsprechen, die Dienstleistungen anbieten. Der Breitengrad und die Länge des Dienstpersonals am Standort entsprechen dem Breitengrad und Längengrad aller Dienstleistungsmitarbeiter, die diesmal gefunden wurden, und berechnen die Entfernung.
Das Folgende ist eine Methode zur Berechnung der Entfernung. Dies ist eine gemeinsame Methode, die für alle Hauptkarten gilt.
public static double getDistance (latlng start, latlng end) {double lat1 = (math.pi/180)*start.latitude; double lat2 = (math.pi/180)*Ende.Latitude; double lon1 = (math.pi/180)*start.longitude; double lon2 = (math.pi/180)*end.longitude; doppelt r = 6371; double d = math.acos (math.sin (lat1)*math.sin (lat2)+math.cos (lat1)*math.cos (lat2)*math.cos (lon2-lon1))*r; return d*1000; } Latlng In dem Parameter können Sie selbst eine Klasse erstellen, die zwei Felder enthält, die doppelt sind. Einer stellt Präzision dar und der andere repräsentiert den Breitengrad.
Der mit dieser Methode generierte Prozess: Wenn der Benutzer die App -Schnittstelle des Servicepersonals öffnet, fordert er die Schnittstelle an, die Liste des Servicepersonals zu lesen. Zu diesem Zeitpunkt muss Servlet die Servicepersonalinformationen einmal in der Gaode Cloud -Karte abfragen. Sie können die Anzahl der Abfragen einschränken und sie dann abfragen. Der Breitengrad und der Längengrad in den einzelnen Daten werden geschleppt und der Breitengrad und Längengrad, das von der App -Schnittstelle übertragen wird, die vom Servicepersonal geöffnet wird, und die relative Entfernung berechnet. Ich kann morgen einen iOS-Aufsatz veröffentlichen, der dieser Schnittstelle entspricht, die hauptsächlich auf dem Code der auf iOS implementierten Zeitlokal-Cloud-Karten-Datenbank veröffentlicht wird.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.