จะมีบทความเพิ่มเติมเกี่ยวกับแผนที่ Gaode
1. คำอธิบายทางธุรกิจ
มีสมาชิกสองประเภทในธุรกิจแอพที่สอดคล้องกัน: หนึ่งคือบุคลากรบริการและอีกคนหนึ่งคือบุคลากรบริการ ส่วนใหญ่จะตระหนักถึงฟังก์ชั่นและค้นหาตำแหน่งของบุคลากรบริการในแอพในเวลาที่เหมาะสม จากนั้นหน่วยระยะทาง M ระหว่างเจ้าหน้าที่บริการและเจ้าหน้าที่บริการจะถูกคำนวณผ่านละติจูดและลองจิจูดที่ให้เมื่อบุคลากรบริการเข้าสู่แอพ
ต่อไปนี้เป็นกระบวนการที่มีรายละเอียดทั้งหมดตั้งแต่การสร้างแอปพลิเคชันที่สอดคล้องกันของ Gaode (ฉันจะไม่พูดถึงถ้าคุณลงทะเบียนที่นี่) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2. สร้างแอปพลิเคชันแผนที่ Gaode ที่สอดคล้องกับ servlet และสร้างตารางฐานข้อมูลแผนที่คลาวด์ของคุณเอง
หลังจากลงทะเบียนบัญชีให้เข้าสู่ระบบและคลิกที่คอนโซลที่มุมขวาบน อินเทอร์เฟซต่อไปนี้จะปรากฏขึ้น ฉันจับภาพหน้าจอ
แน่นอนว่านี่คืออินเทอร์เฟซที่ฉันลงทะเบียน หากคุณไม่ลงทะเบียนเพียงแค่รับคีย์ คลิกที่นี่โดยตรงเพื่อสร้างแอปพลิเคชันของคุณ คุณสามารถรับชื่อแอปพลิเคชันได้ตามต้องการเพราะเราเป็น Servlets ที่นี่เพื่อจัดการกับมัน
ธุรกิจที่เกี่ยวข้องดังนั้นตัวเลือกคือ Web Service API ที่นี่คุณคลิกเพื่อรับคีย์และภาพหน้าจอด้านล่างจะปรากฏขึ้น
หลังจากขั้นตอนนี้เสร็จสิ้นเราสามารถสร้างแผนภูมิคลาวด์ที่เราต้องการป้อนคอนโซลเลือกเมาส์เพื่อย้ายไปยังข้อมูลของฉันจากนั้นเลือกสถานีจัดการข้อมูล (เว็บ) ด้านล่างเพื่อป้อนอินเทอร์เฟซเพื่อเพิ่มแผนภูมิคลาวด์
ด้านล่างเป็นภาพหน้าจอหลังจากเข้าสู่ หลังจากภาพหน้าจอนี้ฉันจะอธิบายโดยตรงในข้อความ
ภาพหน้าจอด้านบนเป็นผลลัพธ์ที่ฉันสร้างขึ้น ที่นี่เราต้องคลิกก่อนที่จะดาวน์โหลดเทมเพลตข้อมูลที่มุมขวาบน หลังจากดาวน์โหลดเทมเพลตให้แก้ไขข้อมูลที่เกี่ยวข้องเพิ่มฟิลด์ที่คุณต้องการแล้วคลิกที่แผนที่ใหม่เป็น
เทมเพลตที่แก้ไขจะถูกนำเข้าสู่คลาวด์ไลบรารี เทมเพลตนี้เป็นตารางฐานข้อมูลที่ส่งออกโดย Excel ด้านล่างฉันสกัดกั้นตารางที่ฉันสร้างโดยตรง ฉันเพิ่มสองฟิลด์ลงในตารางนี้และตั้งค่าหนึ่งฟิลด์เป็นฟิลด์ดัชนี
โปรดจำไว้ว่าชื่อเขตข้อมูลสีแดงจะต้องได้รับการเก็บรักษาไว้ (เนื้อหาสามารถแก้ไขได้ตามต้องการ) ซึ่งรวมอยู่ในเทมเพลตระบบ ฟิลด์สีดำทั้งสองในตอนท้ายจะถูกเพิ่มเข้ามาด้วยตัวเองและสามารถแก้ไขได้ตามต้องการ แม้ว่าคุณจะอัปโหลดไปยังเซิร์ฟเวอร์แผนที่คลาวด์ Gaode ก็สามารถเปลี่ยนแปลงได้
หลังจากอัปโหลดตารางด้านบนคุณจะเปิดการจัดการข้อมูลก่อนหน้า (เว็บ) และอินเทอร์เฟซของแผนที่ก่อนหน้าจะปรากฏขึ้น บล็อกแผนที่จะปรากฏทางด้านซ้าย คลิกในและคุณจะเห็นข้อมูลรายละเอียดของบุคคลที่คุณอัปโหลดรวมถึงโลโก้ดาวห้าแฉกสีเหลืองที่แสดงบนแผนที่ผ่านละติจูดและลองจิจูดที่อัปโหลด มีภาพหน้าจอด้านล่าง
ฟิลด์ที่แสดงในตารางนี้ได้รับการแก้ไขโดยฉันไม่ได้อัปโหลดใน Excel ตอนนี้ การคลิกที่ชื่อในคอลัมน์สามารถทำการตั้งค่าได้ ฉันจะไม่เข้าไปดูรายละเอียด
เพียงแค่พูดคุยเกี่ยวกับการตั้งค่าของฟิลด์ดัชนี
หลังจากเข้าสู่ฉันเลือกที่จะกรองดัชนีการเรียงลำดับ-> กรองดัชนีการเรียงลำดับคือการตั้งค่าเงื่อนไขตัวกรองสำหรับฟิลด์ที่เพิ่มขึ้นใหม่ของผู้ใช้
ฉันใช้ประเภทผู้ใช้ที่ถ่ายในภาพคลาวด์ด้านบน ฉันจะถ่ายรูปให้คุณด้วย
ณ จุดนี้เราจะเสร็จสิ้นการสร้างแผนที่คลาวด์ทั้งหมดและขั้นตอนการอัปโหลด - - ต่อไปฉันจะพูดถึงวิธีการที่เรียกว่า
2. วิธีการขอไลบรารีคลาวด์ Servlet Query
1. โพสต์แรกที่อยู่เอกสารของนักพัฒนา:
http://lbs.amap.com/yuntu/reference/cloudsearch/ ฉันขอแนะนำให้คุณตรวจสอบตัวเอง
ที่นี่ Servlet ใช้ API การดึงคลาวด์และแอพที่เกี่ยวข้องใช้ API ที่เก็บข้อมูลคลาวด์ บางทีพรุ่งนี้อาจมีการเพิ่มบทความเกี่ยวกับตำแหน่งเวลาของไคลเอนต์ iOS ที่สอดคล้องกับอินเทอร์เฟซนี้
ด้านล่างเป็นรูปแบบ URL ที่มีการประกบ ป้อนรีเฟรชลงใน URL โดยตรงเพื่อรับข้อมูลที่เกี่ยวข้องโดย GET
http://yuntuapi.amap.com/datasearch/local?tableid=568bd32b305a2a31f604c650&city=beijing&keywords=%20&filter=Type: จำกัด พนักงานบริการ = 15 & หน้า = 1 & คีย์ =? (ปุ่มพารามิเตอร์ที่นี่เป็นของคุณเองทั้งหมด)
ด้านล่างเป็นรหัสวิธีการร้องขอที่ห่อหุ้ม
ผู้ช่วยบรรจุภัณฑ์; นำเข้า java.io.bufferedreader; นำเข้า java.io.ioexception; นำเข้า java.io.inputstreamreader; นำเข้า java.io.printwriter; นำเข้า java.io.unsupportencodingexception; นำเข้า java.net.url; นำเข้า java.util.map; คลาสสาธารณะ httprequest { /** * ส่งคำขอวิธีการไปยัง URL ที่ระบุ * * @param url * url เพื่อส่งคำขอ * @param พารามิเตอร์ * พารามิเตอร์คำขอพารามิเตอร์การร้องขอควรอยู่ในรูปแบบของชื่อ 1 = value1 & name2 = ค่า 2 * @return URL การตอบสนองผลลัพธ์ของทรัพยากรระยะไกลที่แสดงโดยทรัพยากรระยะไกล*/ สตริงคงที่สาธารณะ sendget (สตริง url, พารามิเตอร์สตริง) {string result = ""; bufferedReader ใน = null; ลอง {string urlnamestring = url + "?" + param; url realurl = url ใหม่ (urlnamestring); // เปิดการเชื่อมต่อระหว่างการเชื่อมต่อ urlconnection url = realurl.openconnection (); // ตั้งค่าแอตทริบิวต์การร้องขอทั่วไปการเชื่อมต่อ SetRequestProperty ("ยอมรับ", "*/*"); Connection.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); Connection.setRequestProperty ("ผู้ใช้ตัวแทน", "Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)"); // สร้างการเชื่อมต่อการเชื่อมต่อจริง connect (); // รับฟิลด์ส่วนหัวตอบกลับทั้งหมด <String, list <String>> map = connection.getheaderfields (); // traverse ฟิลด์ส่วนหัวการตอบสนองทั้งหมดสำหรับ (คีย์สตริง: map.keyset ()) {system.out.println (คีย์ + "--->" + map.get (คีย์)); } // กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนองของ URL ใน = bufferedReader ใหม่ (ใหม่ inputStreamReader (Connection.getInputStream ())); สายสตริง; ในขณะที่ ((line = in.readline ())! = null) {result += line; }} catch (exception e) {system.out.println ("ข้อยกเว้นเกิดขึ้นเมื่อส่งคำขอรับ!" + e); E.PrintStackTrace (); } // ใช้ในที่สุดบล็อกเพื่อปิดสตรีมอินพุตในที่สุด {ลอง {ถ้า (ใน! = null) {in.close (); }} catch (Exception e2) {e2.printstackTrace (); }} ผลการส่งคืน; } /** * ส่งคำขอไปยัง URL ที่ระบุ * @param url * url เพื่อส่งคำขอ * @param พารามิเตอร์ * พารามิเตอร์คำขอพารามิเตอร์คำขอควรอยู่ในรูปแบบของชื่อ 1 = value1 & name2 = value2 * @return ผลการตอบกลับของทรัพยากรระยะไกลที่แสดงโดย */ สตริงคงที่สาธารณะ sendPost (url สตริง, พารามิเตอร์สตริง) {printWriter out = null; bufferedReader ใน = null; สตริงผลลัพธ์ = ""; ลอง {url realurl = url ใหม่ (url); // เปิดการเชื่อมต่อระหว่าง urlConnection conn = realurl.openconnection (); // ตั้งค่าแอตทริบิวต์คำขอทั่วไป conn.setRequestProperty ("ยอมรับ", "*/*"); conn.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); conn.setRequestProperty ("ผู้ใช้ตัวแทน", "Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)"); // ในการส่งคำขอโพสต์คุณต้องตั้งค่าสองบรรทัดต่อไปนี้เป็น conn.SetDoOutput (จริง); conn.setDoInput (จริง); // รับกระแสเอาต์พุตที่สอดคล้องกับวัตถุ urlConnection out = printwriter ใหม่ (conn.getOutputStream ()); // ส่งพารามิเตอร์การร้องขอ out.print (param); // บัฟเฟอร์ out.flush () ของสตรีมเอาต์พุตฟลัช; // กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนอง URL ใน = ใหม่ bufferedReader (ใหม่ inputStreamReader (conn.getInputStream ())); สายสตริง; ในขณะที่ ((line = in.readline ())! = null) {result += line; }} catch (exception e) {system.out.println ("ข้อยกเว้นเกิดขึ้นเมื่อส่งคำขอโพสต์!" +e); E.PrintStackTrace (); } // ใช้ในที่สุดบล็อกเพื่อปิดสตรีมเอาต์พุตและสตรีมอินพุตในที่สุด {ลอง {ถ้า (ออก! = null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printstacktrace (); }} ลอง {result = สตริงใหม่ (result.getBytes ("ISO8859-1"), "UTF-8"); } catch (unsupportencodingexception e) {// toDo บล็อก catch ที่สร้างโดยอัตโนมัติ E.PrintStackTrace (); } ผลตอบแทนผลลัพธ์; -ต่อไปนี้เป็นวิธีการร้องขอ
String mapparameter = สตริงใหม่ ("tableId = 568bd32b305a2a31f604c650 & เมือง = ปักกิ่ง & คำหลัก =%20 & กรอง = ประเภท: จำกัด masseur = 15 & หน้า = 1 & key =?"). getBytes ("iso8859-1")
String returnResult = httprequest.sendpost ("http://yuntuapi.amap.com/datasearch/local", maparameter);
out.println ("<script> การแจ้งเตือน ("+returnResult+"); </script>");
เงื่อนไขการกรองที่เราสอบถามที่นี่คือฟิลด์ที่เราสร้างตัวเอง (และเราตั้งค่าเป็นฟิลด์ดัชนี) ประเภท: Massager - -
3. Servlet คำนวณระยะห่างระหว่างสองละติจูดและลองจิจูด
นี่คือระยะห่างระหว่างเซิร์ฟเล็ตและเจ้าหน้าที่บริการผ่านละติจูดและลองจิจูด นี่คือความสัมพันธ์แบบหนึ่งต่อหลายคน บุคคลหนึ่งที่รับใช้สามารถสอดคล้องกับผู้ให้บริการ ละติจูดและลองจิจูดของบุคลากรบริการที่ตั้งอยู่ในสถานที่จะตรงกับละติจูดและลองจิจูดของเจ้าหน้าที่บริการทั้งหมดที่พบในเวลานี้และคำนวณระยะทาง
ต่อไปนี้เป็นวิธีการคำนวณระยะทาง นี่เป็นวิธีทั่วไปที่ใช้กับแผนที่หลักทั้งหมด
สาธารณะคงที่ 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; - Latlng ในพารามิเตอร์คุณสามารถสร้างคลาสด้วยตัวเองซึ่งมีสองฟิลด์ที่มีสองประเภท หนึ่งแสดงถึงความแม่นยำและอื่น ๆ แสดงถึงละติจูด
กระบวนการที่สร้างขึ้นโดยใช้วิธีนี้: เมื่อผู้ใช้เปิดอินเทอร์เฟซแอพของบุคลากรบริการเขาขอให้อินเทอร์เฟซอ่านรายการบุคลากรบริการ ในเวลานี้ Servlet จำเป็นต้องสอบถามข้อมูลบุคลากรบริการในแผนที่คลาวด์ Gaode หนึ่งครั้ง คุณสามารถ จำกัด จำนวนการสืบค้นแล้วสอบถามได้ ละติจูดและลองจิจูดในแต่ละข้อมูลจะถูกวนลูปและละติจูดและลองจิจูดที่ส่งโดยอินเทอร์เฟซแอปที่เปิดโดยบุคลากรบริการและคำนวณระยะทางสัมพัทธ์ ฉันอาจเผยแพร่เรียงความ iOS ในวันพรุ่งนี้ซึ่งสอดคล้องกับอินเทอร์เฟซนี้ส่วนใหญ่โพสต์บนรหัสของฐานข้อมูลแผนที่เวลาบนคลาวด์ที่ตั้งอยู่บน iOS
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น