Gaode지도에 대한 에세이가 더 있습니다.
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. 서블릿에 해당하는 Gaode Map 응용 프로그램을 만들고 클라우드 맵 데이터베이스 테이블을 만듭니다.
계정을 등록한 후 로그인하고 오른쪽 상단의 콘솔을 클릭하십시오. 다음 인터페이스가 나타납니다. 스크린 샷을 찍었습니다.
물론 이것은 내가 등록한 인터페이스입니다. 등록하지 않으면 키를 얻으십시오. 여기를 클릭하여 응용 프로그램을 작성하십시오. 우리는 여기에 서블릿이기 때문에 응용 프로그램 이름을 마음대로 얻을 수 있습니다.
관련 비즈니스이므로 옵션은 웹 서비스 API입니다. 여기에서 키를 얻으려면 클릭하면 아래 스크린 샷이 나타납니다.
이 단계가 완료되면 원하는 클라우드 차트를 만들고 콘솔을 입력하고 데이터로 이동하려면 마우스를 선택한 다음 아래 데이터 관리 스테이션 (웹)을 선택하여 인터페이스를 입력하여 클라우드 차트를 추가하십시오.
아래는 입력 후 스크린 샷입니다. 이 스크린 샷 후에는 텍스트로 직접 설명하겠습니다.
위의 스크린 샷은 내가 만든 결과입니다. 여기서 먼저 오른쪽 상단 코너의 데이터 템플릿 다운로드를 클릭해야합니다. 템플릿을 다운로드 한 후 해당 데이터를 수정하고 필요한 필드를 추가 한 다음 새 맵을 클릭하십시오.
수정 된 템플릿은 클라우드 라이브러리로 가져옵니다. 이 템플릿은 실제로 Excel이 내보내는 데이터베이스 테이블입니다. 아래에서 나는 생성 한 테이블을 직접 가로 채 웁니다. 이 테이블에 두 개의 필드를 추가하고 하나의 필드를 인덱스 필드로 설정했습니다.
시스템 템플릿에 포함 된 빨간색 필드 이름을 보존해야합니다 (내용은 마음대로 수정 될 수 있음). 마지막에 두 개의 검은 필드는 자체적으로 추가되며 마음대로 수정할 수 있습니다. Gaode Cloud Map 서버에 업로드하더라도 변경할 수 있습니다.
위의 표를 업로드하면 이전 데이터 관리 (Web)가 열리면 이전 맵의 인터페이스가 나타납니다. 왼쪽에지도 블록이 나타납니다. 클릭하면 업로드 한 사람의 자세한 정보와 업로드 된 위도 및 경도를 통해지도에 표시된 노란색 5 점 스타 로고가 표시됩니다. 아래에 스크린 샷이 있습니다
이 테이블에 표시된 필드는 지금 당장 Excel에 업로드되지 않은 채로 수정됩니다. 열에서 제목을 클릭하면 일련의 설정이 발생할 수 있습니다. 나는 세부 사항으로 들어 가지 않을 것입니다.
인덱스 필드의 설정에 대해 이야기하십시오.
입력 한 후 정렬 색인을 필터링하기로 결정했습니다 .-> 필터 정렬 색인은 새로 추가 된 사용자 필드에 대한 필터 조건을 설정하는 것입니다.
위의 클라우드 이미지에서 찍은 사용자 유형을 사용하고 있습니다. 나는 또한 당신을 위해 그것의 사진을 찍을 것입니다.
이 시점에서 전체 클라우드 맵 생성 및 업로드 단계를 완료합니다. . . 다음으로 전화 한 방법에 대해 이야기하겠습니다.
2. 서블릿 쿼리 클라우드 이미지 라이브러리 요청 방법
1. 먼저 개발자의 문서 주소를 게시하십시오.
http://lbs.amap.com/yuntu/reference/cloudsearch/ 직접 확인하는 것이 좋습니다
여기서 서블릿은 클라우드 검색 API를 사용하고 해당 앱은 클라우드 스토리지 API를 사용합니다. 어쩌면 내일,이 인터페이스에 해당하는 iOS 클라이언트의 시간 위치에 관한 기사가 추가됩니다.
아래는 스 플린트 URL 형식입니다. get별로 관련 데이터를 얻으려면 URL에 직접 새로 고침을 입력하십시오.
http://yuntuapi.amap.com/datasearch/local?tableid=568bd32b305a2a31f604c650&city=beyjing&keywords=%20&filter=type : 서비스 스태프 한계 = 15 & page = 1 & key =? (여기서 매개 변수 키는 모두 자신의 것입니다)
아래는 캡슐화 된 요청 방법 코드입니다
패키지 도우미; import java.io.bufferedReader; import java.io.ioexception; import java.io.inputStreamreader; import java.io.printwriter; import java.io.unsupportedencodingexception; import java.net.url; import java.net.url; import java.net.urlconnection; java.util.map; public class httprequest { /** * 지정된 URL * * @param url * url에게 get 메소드 요청을 보내려면 * @param param * 요청 매개 변수를 보내려면 요청 매개 변수는 name1 = value1 & name2 = value2의 형식이어야합니다. * 원격 자원으로 표시되는 원격 자원의 @return URL 응답 결과*/ public static string sendget (String URL, String Param) {String result = ""; 버퍼드 리더 in = null; {string urlnamestring = url + "?" + PARAM; url realurl = new URL (urlnamestring); // URL URLCONNECTION CONNECTION 사이의 연결을 엽니 다. = realUrl.openConnection (); // 일반 요청 속성을 설정합니다. Connection.setRequestProperty ( "Connection", "Keep-Alive"); Connection.setRequestProperty ( "사용자 에이전트", "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)); } // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL의 응답을 읽습니다 (new inputStreamReader (connection.getInputStream ())); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "GET 요청을 보낼 때 예외가 발생했습니다!" + e); e.printstacktrace (); } // 입력 스트림을 닫으려면 마지막으로 블록을 사용하여 마지막으로 {try {if (in! = null) {in.close (); }} catch (예외 e2) {e2.printstacktrace (); }} 반환 결과; } /** * 지정된 URL * @param url * URL에 요청을 보내 요청 * @param param * 요청 매개 변수, 요청 매개 변수는 name1 = value1 & name2 = value2의 형태 여야합니다. * @return 응답 */ public static string sendpost (String URL, String Param) {printwriter out = null; 버퍼드 리더 in = null; 문자열 결과 = ""; try {url realurl = new URL (url); // urlConnection 사이의 연결을 엽니 다. conn = realurl.openConnection (); // 일반 요청 속성을 설정하여 Conn.setRequestProperty ( "accept", "*/*"); Conn.setRequestProperty ( "Connection", "Keep-Alive"); Conn.setRequestProperty ( "사용자 에이전트", "Mozilla/4.0 (호환 가능; MSIE 6.0; Windows NT 5.1; Sv1)"); // 게시물 요청을 보내려면 다음 두 줄을 Conn.SetDoOutput (true)로 설정해야합니다. conn.setdoinput (true); // urlConnection 객체에 해당하는 출력 스트림을 가져옵니다. // 요청 매개 변수를 보내십시오 .print (param); // 플러시 출력 스트림의 버퍼 out.flush (); // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL 응답을 읽습니다 (new inputStreamReader (conn.getInputStream ()); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "게시물 요청을 보낼 때 예외가 발생했습니다!" +e); e.printstacktrace (); } // 마침내 블록을 사용하여 출력 스트림을 닫고 입력 스트림을 마지막으로 {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 (UnsupportedEncodingException e) {// todo 자동 생성 캐치 블록 e.printstacktrace (); } 반환 결과; }}다음은 요청 방법입니다
문자열 mapparameter = new String ( "tableID = 568BD32BD32B332B305A31F604C650 & City = Beijing & Keywords =%20 & 필터 = 유형 : Masseur 한계 = 15 & page = 1 & key =?").
String returnResult = httprequest.sendpost ( "http://yuntuapi.amap.com/datasearch/local", Mapparameter);
out.println ( "<cript> alert ("+returnResult+"); </script>");
여기서 쿼리하는 필터링 조건은 우리가 만든 필드입니다 (그리고 우리는 그것을 색인 필드로 설정) 유형 : Massager ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Servlet은 두 위도와 종단 사이의 거리를 계산합니다.
이것은 위도와 경도를 통한 서블릿과 서비스 담당자 사이의 거리입니다. 이것은 실제로 일대일 관계입니다. 봉사하는 한 사람은 서비스를 제공하는 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; 이중 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; } latlng 매개 변수의 Latlng는 이중 유형 인 두 개의 필드를 포함하는 클래스 직접 클래스를 만들 수 있습니다. 하나는 정밀도를 나타내고 다른 하나는 위도를 나타냅니다.
이 방법을 사용하여 생성 된 프로세스 : 사용자가 서비스 직원의 앱 인터페이스를 열면 인터페이스에 서비스 직원 목록을 읽도록 요청합니다. 현재 Servlet은 Gaode Cloud Map의 서비스 직원 정보를 한 번 쿼리해야합니다. 쿼리 수를 제한 한 다음 쿼리 할 수 있습니다. 각 데이터의 위도와 경도는 루프가 반복되며 서비스 직원이 열리는 앱 인터페이스에 의해 전송되고 상대 거리를 계산합니다. 내일 iOS 에세이를 게시 할 수 있는데,이 인터페이스에 해당하는이 인터페이스에 해당하며, 주로 iOS에서 구현 된 Time-Location Cloud Map 데이터베이스의 코드에 게시되었습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.