บริการการเข้ารหัสพิกัดภูมิศาสตร์

ภาพรวม

การระบุพิกัดทางภูมิศาสตร์คือ กระบวนการแปลงที่อยู่ (เช่น "1600 Amphitheatre Parkway, Mountain View, CA") เข้าไปในพิกัดทางภูมิศาสตร์ (เช่น ละติจูด 37.423021 และลองจิจูด -122.083739) ซึ่งคุณสามารถใช้เพื่อ เครื่องหมายตำแหน่ง หรือวางตำแหน่งแผนที่

การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับเป็นขั้นตอนการแปลงข้อมูลทางภูมิศาสตร์ พิกัดลงในที่อยู่ที่มนุษย์อ่านได้ (โปรดดู Reverse Geocoding (การค้นหาที่อยู่))

คุณยังสามารถใช้โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์เพื่อค้นหาที่อยู่สำหรับ รหัสสถานที่

Maps JavaScript API มี คลาส Geocoder สำหรับ การหาพิกัดภูมิศาสตร์และการทำ 'การเข้ารหัสภูมิศาสตร์ย้อนกลับ' แบบไดนามิกจากข้อมูลของผู้ใช้ หาก คุณต้องการระบุพิกัดทางภูมิศาสตร์ของที่อยู่ที่รู้จัก ให้อ่าน บริการข้อมูลพิกัดทางภูมิศาสตร์บนเว็บ

เริ่มต้นใช้งาน

ก่อนที่จะใช้บริการ Geocoding ใน Maps JavaScript API ก่อนอื่นให้ตรวจสอบว่าคุณ ได้เปิดใช้ Geocoding API ใน Google Cloud Console ที่คุณสร้างสำหรับ Maps JavaScript API

วิธีดูรายการ API ที่เปิดใช้มีดังนี้

  1. ไปที่หน้า คอนโซล Google Cloud
  2. คลิกปุ่มเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์เดียวกับที่คุณสร้าง สำหรับ Maps JavaScript API แล้วคลิกเปิด
  3. จากรายการ API ในแดชบอร์ด ให้มองหา Geocoding API
  4. หากเห็น API ในรายการ แสดงว่าทุกอย่างเรียบร้อยแล้ว หากไม่อยู่ในรายการ API เปิดใช้งาน:
    1. ที่ด้านบนของหน้า ให้เลือกเปิดใช้ API เพื่อแสดง คลัง หรือจากเมนูด้านซ้าย เลือกคลัง
    2. ค้นหา Geocoding API แล้วเลือกจาก รายการผลลัพธ์
    3. เลือกเปิดใช้ เมื่อกระบวนการเสร็จสิ้น Geocoding API ปรากฏในรายการ API ใน แดชบอร์ด

ราคาและนโยบาย

ราคา

แพ็กเกจราคาใหม่แบบจ่ายเมื่อใช้ มีผลตั้งแต่วันที่ 16 กรกฎาคม 2018 สำหรับ Maps, Routes และ Places ดูข้อมูลเพิ่มเติมเกี่ยวกับราคาและการใช้งานใหม่ ขีดจำกัดสำหรับการใช้บริการ Geocoding ของ JavaScript โปรดดู การใช้งานและการเรียกเก็บเงิน สำหรับ Geocoding API

นโยบาย

การใช้บริการการระบุพิกัดทางภูมิศาสตร์ต้องเป็นไปตาม นโยบายที่อธิบาย สำหรับ Geocoding API

คำขอเกี่ยวกับการระบุพิกัดทางภูมิศาสตร์

การเข้าถึงบริการ Geocoding เป็นแบบไม่พร้อมกัน เนื่องจาก Google แผนที่ API ต้องเรียกไปยังเซิร์ฟเวอร์ภายนอก ด้วยเหตุนี้ คุณจึงต้องผ่าน callback ที่จะทำงานเมื่อคำขอเสร็จสมบูรณ์ ช่วงเวลานี้ Callback Method จะประมวลผลผลลัพธ์ โปรดทราบว่าโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์อาจส่งคืน ผลลัพธ์มากกว่าหนึ่งรายการ

คุณเข้าถึงบริการการระบุพิกัดทางภูมิศาสตร์ของ Google Maps API ภายในโค้ดของคุณผ่านทาง ออบเจ็กต์ตัวสร้าง google.maps.Geocoder เมธอด Geocoder.geocode() เริ่มคำขอไปยังการระบุพิกัดทางภูมิศาสตร์ ให้ส่งต่อค่าลิเทอรัลออบเจ็กต์ GeocoderRequest ที่มี คำอินพุตและเมธอด Callback ที่จะทำงานเมื่อได้รับคำตอบ

ค่าลิเทอรัลของออบเจ็กต์ GeocoderRequest มีช่องต่อไปนี้

{
 address: string,
 location: LatLng,
 placeId: string,
 bounds: LatLngBounds,
 componentRestrictions: GeocoderComponentRestrictions,
 region: string
}

พารามิเตอร์ที่จำเป็น: คุณต้องป้อน 1 รายการเท่านั้น ฟิลด์ต่อไปนี้

  • address — ที่อยู่ที่คุณต้องการระบุพิกัดทางภูมิศาสตร์
    หรือ
    locationLatLng (หรือ LatLngLiteral) ที่คุณต้องการข้อมูลที่ใกล้เคียงที่สุด ที่มนุษย์อ่านได้ โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ โปรดดู การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับสำหรับข้อมูลเพิ่มเติม
    หรือ
    placeId — รหัสสถานที่ของสถานที่ที่คุณต้องการ เพื่อรับที่อยู่ที่ใกล้ที่สุดที่มนุษย์อ่านได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ การดึงข้อมูลที่อยู่สำหรับรหัสสถานที่

พารามิเตอร์ที่ไม่บังคับ:

  • bounds — เวลา วันที่ LatLngBounds ที่จะทำให้มีน้ำหนักพิเศษด้วยรหัสทางภูมิศาสตร์ที่เด่นชัดกว่า พารามิเตอร์ bounds จะมีผลต่อผลลัพธ์ของโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์เท่านั้น (ไม่จำกัดทั้งหมด) โปรดดู ข้อมูลเพิ่มเติมเกี่ยวกับ การให้น้ำหนักวิวพอร์ต ที่ด้านล่าง
  • componentRestrictions — ใช้เพื่อจำกัดผลลัพธ์เฉพาะ เฉพาะบางพื้นที่ ดูข้อมูลเพิ่มเติมเกี่ยวกับ การกรองคอมโพเนนต์ที่ด้านล่าง
  • region — รหัสภูมิภาค ที่ระบุเป็น ระบุเป็นแท็กย่อยภูมิภาค Unicode แบบ 2 อักขระ (ไม่ใช่ตัวเลข) ส่วนใหญ่ กรณีต่างๆ แท็กเหล่านี้จะจับคู่กับ ccTLD ที่คุ้นเคยโดยตรง ("โดเมนระดับบนสุด") ซึ่งมีอักขระ 2 ตัว พารามิเตอร์ region จะมีผลต่อ ไม่ได้จำกัดโดยสมบูรณ์ ซึ่งเป็นผลมาจากโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ ดูข้อมูลเพิ่มเติมเกี่ยวกับ การให้น้ำหนักรหัสภูมิภาคด้านล่าง
  • extraComputations — ค่าเดียวที่อนุญาตสำหรับส่วนนี้ ADDRESS_DESCRIPTORS โปรดดู ข้อบ่งชี้ที่อยู่เพื่อดูรายละเอียดเพิ่มเติม
  • fulfillOnZeroResults — ทำตามคำสัญญาด้วยสถานะ ZERO_RESULT ใน คำตอบ นี่อาจเป็นสิ่งที่คุณต้องการ เพราะแม้จะมีผลลัพธ์การเข้ารหัสพิกัดภูมิศาสตร์เป็น 0 ก็อาจยังมีผลลัพธ์ แสดงผลฟิลด์ระดับการตอบกลับเพิ่มเติม โปรดดู ดำเนินการตามผลลัพธ์ที่ไม่มีผลลัพธ์สำหรับรายละเอียดเพิ่มเติม

การตอบกลับการเข้ารหัสพิกัดภูมิศาสตร์

บริการ Geocoding ต้องมีเมธอด Callback เพื่อดำเนินการเมื่อมีการดึงข้อมูล ของผลลัพธ์ของโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ Callback นี้ควรส่งผ่านพารามิเตอร์ 2 รายการเพื่อระงับ results และรหัส status ตามลำดับนั้น

ผลลัพธ์การเข้ารหัสพิกัดภูมิศาสตร์

ออบเจ็กต์ GeocoderResult แสดง ผลการระบุพิกัดทางภูมิศาสตร์ คำขอรหัสพิกัดอาจส่งกลับออบเจ็กต์ผลลัพธ์หลายรายการ ดังนี้

results[]: {
 types[]: string,
 formatted_address: string,
 address_components[]: {
   short_name: string,
   long_name: string,
   postcode_localities[]: string,
   types[]: string
 },
 partial_match: boolean,
 place_id: string,
 postcode_localities[]: string,
 geometry: {
   location: LatLng,
   location_type: GeocoderLocationType
   viewport: LatLngBounds,
   bounds: LatLngBounds
 }
}

ฟิลด์เหล่านี้จะอธิบายไว้ด้านล่าง

  • types[] คืออาร์เรย์ที่ระบุประเภทที่อยู่ของ ผลลัพธ์ที่แสดง อาร์เรย์นี้มีชุดของแท็กตั้งแต่ 0 แท็กขึ้นไป ระบุประเภทของฟีเจอร์ที่ปรากฏในผลการค้นหา ตัวอย่างเช่น รหัสพิกัดภูมิศาสตร์ของ "ชิคาโก" แสดงผล "locality" ซึ่งบ่งบอกว่า "ชิคาโก" เป็น และแสดงผลว่า "political" ซึ่งบ่งบอกว่าเป็นการเมือง เอนทิตี ดูข้อมูลเพิ่มเติมเกี่ยวกับ ประเภทที่อยู่และองค์ประกอบที่อยู่ ประเภทต่างๆ ด้านล่าง
  • formatted_address เป็นสตริงที่มีฟังก์ชันที่มนุษย์อ่านได้ ของสถานที่นี้

    บ่อยครั้งที่ที่อยู่นี้เทียบเท่ากับที่อยู่ไปรษณีย์ โปรดทราบว่า ประเทศต่างๆ เช่น สหราชอาณาจักร ไม่อนุญาตให้เผยแพร่ ที่อยู่ไปรษณีย์เนื่องจากข้อจำกัดในการอนุญาตให้ใช้สิทธิ

    ที่อยู่ที่จัดรูปแบบประกอบด้วยที่อยู่ ที่อยู่อย่างน้อย 1 รายการตามตรรกะ คอมโพเนนต์ เช่น ที่อยู่ "111 8th Avenue, New York, NY" ประกอบด้วยคอมโพเนนต์ "111" (หมายเลขถนน) "ถนน 8th Avenue" (เส้นทาง), "นิวยอร์ก" (เมือง) และ "NY" (รัฐในสหรัฐอเมริกา)

    อย่าแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบโดยใช้โปรแกรม แต่คุณควรใช้ คอมโพเนนต์ที่อยู่แต่ละรายการ ซึ่งการตอบสนองของ API จะรวมอยู่ด้วยนอกเหนือจาก ลงในฟิลด์ที่อยู่ที่จัดรูปแบบแล้ว

  • address_components[] เป็นอาร์เรย์ที่มี ที่เกี่ยวข้องสำหรับที่อยู่นี้

    ตามปกติองค์ประกอบที่อยู่แต่ละรายการจะมีฟิลด์ต่อไปนี้

    • types[] คืออาร์เรย์ที่ระบุประเภทของค่า คอมโพเนนต์ที่อยู่ ดูรายการ ประเภทที่รองรับ
    • long_name คือคำอธิบายหรือชื่อของ ตามที่ Geocoder แสดงผล
    • short_name เป็นชื่อแบบย่อของที่อยู่ คอมโพเนนต์ "หากมี" ตัวอย่างเช่น คอมโพเนนต์ที่อยู่สำหรับรัฐ ของอะแลสกาอาจมี long_name เป็น "อะแลสกา" และ short_name ของ "AK" โดยใช้อักษรย่อรหัสไปรษณีย์ 2 ตัว

    โปรดทราบข้อเท็จจริงต่อไปนี้เกี่ยวกับ address_components[] อาร์เรย์:

    • อาร์เรย์ของคอมโพเนนต์ที่อยู่อาจมีคอมโพเนนต์มากกว่า formatted_address
    • อาร์เรย์ไม่จำเป็นต้องรวมหน่วยงานทางการเมืองทั้งหมดที่ มีที่อยู่ นอกเหนือจากที่อยู่ที่ระบุใน formatted_address วิธีดึงข้อมูลหน่วยงานทางการเมืองทั้งหมด ซึ่งมีที่อยู่เฉพาะ คุณควรใช้การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ ละติจูด/ลองจิจูดของที่อยู่เป็นพารามิเตอร์ของคำขอ
    • เราไม่รับประกันว่ารูปแบบของคําตอบจะยังคงเหมือนเดิม คำขอ โดยเฉพาะอย่างยิ่งจำนวนaddress_components แตกต่างกันไปตามที่อยู่ที่ขอ และอาจเปลี่ยนแปลงเมื่อเวลาผ่านไป ที่อยู่เดียวกัน คอมโพเนนต์เปลี่ยนตำแหน่งในอาร์เรย์ได้ ประเภทของคอมโพเนนต์เปลี่ยนแปลงได้ คอมโพเนนต์เฉพาะอาจเป็น หายไปในการตอบกลับในภายหลัง

    ดูข้อมูลเพิ่มเติมเกี่ยวกับ ประเภทที่อยู่และองค์ประกอบที่อยู่ ประเภทต่างๆ ด้านล่าง

  • partial_match ระบุว่าโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ไม่ได้ส่งคืน ตรงกับคำขอเดิมทั้งหมด แม้ว่าจะสามารถจับคู่กับ ที่อยู่ที่ขอ คุณอาจต้องการตรวจสอบคำขอเดิมสำหรับการสะกดผิดและ/หรือ ที่อยู่ไม่สมบูรณ์

    การจับคู่บางส่วนมักเกิดขึ้นกับที่อยู่ที่ไม่มีอยู่ ภายในย่านที่คุณส่งในคำขอ อาจมีส่วนที่ตรงกันบางส่วน แสดงผลเมื่อคำขอตรงกับสถานที่ตั้งตั้งแต่ 2 แห่งขึ้นไปในย่านเดียวกัน เช่น "Hillpar St, Bristol, UK" จะแสดงผลลัพธ์ที่ตรงกันบางส่วนสำหรับทั้ง Henry Street และ Henrietta Street โปรดทราบว่าหากคำขอรวม ส่วนประกอบที่อยู่สะกดผิด บริการเข้ารหัสพิกัดภูมิศาสตร์อาจแนะนำทางเลือก ที่อยู่ คำแนะนำที่ทริกเกอร์ในลักษณะนี้จะทำเครื่องหมายเป็นบางส่วนด้วย ที่ตรงกัน

  • place_idเป็นตัวระบุที่ไม่ซ้ำกันของสถานที่ ซึ่งสามารถใช้ได้ กับ Google API อื่นๆ ตัวอย่างเช่น คุณสามารถใช้แท็ก place_id ด้วย Google สถานที่ ไลบรารี API เพื่อรับรายละเอียดของธุรกิจในพื้นที่ เช่น หมายเลขโทรศัพท์ เวลาทำการ รีวิวจากผู้ใช้ และอื่นๆ โปรดดู ภาพรวมรหัสสถานที่
  • postcode_localities[] เป็นอาร์เรย์ที่แสดงย่านทั้งหมด อยู่ในรหัสไปรษณีย์ และจะปรากฏเมื่อผลลัพธ์เป็นรหัสไปรษณีย์เท่านั้น ที่มีหลายย่าน
  • geometry มีข้อมูลต่อไปนี้

    • location มีค่าละติจูดและลองจิจูดที่ระบุพิกัดทางภูมิศาสตร์ โปรดทราบว่าเราส่งคืนตำแหน่งนี้เป็นออบเจ็กต์ LatLng ไม่ใช่ เป็นสตริงที่มีการจัดรูปแบบ
    • location_type จัดเก็บข้อมูลเพิ่มเติมเกี่ยวกับ ตำแหน่งนั้น ปัจจุบันระบบรองรับค่าต่อไปนี้
      • ROOFTOP บ่งชี้ ผลลัพธ์ที่แสดงเป็นรหัสพิกัดภูมิศาสตร์ที่ถูกต้อง
      • RANGE_INTERPOLATED ระบุว่าผลลัพธ์ที่แสดงเป็นค่าประมาณ (มักจะอยู่บนถนน) อยู่ระหว่างจุดสองจุดที่แม่นยำ (เช่น เป็นทางแยก) โดยทั่วไประบบจะแสดงผลลัพธ์แบบประมาณเมื่อ การระบุพิกัดทางภูมิศาสตร์บนหลังคาไม่สามารถใช้งานได้สำหรับที่อยู่
      • GEOMETRIC_CENTER ระบุว่าผลลัพธ์ที่แสดงคือจุดศูนย์กลางทางเรขาคณิตของ ผลลัพธ์ เช่น เส้นประกอบ (เช่น ถนน) หรือรูปหลายเหลี่ยม (ภูมิภาค)
      • APPROXIMATE ระบุว่าผลลัพธ์ที่แสดงเป็นค่าประมาณ

    • viewport จัดเก็บวิวพอร์ตที่แนะนำสำหรับ ผลลัพธ์ที่แสดง
    • bounds (เลือกส่งคืนได้) จัดเก็บ LatLngBounds ซึ่งสามารถเก็บผลลัพธ์ที่แสดงผลได้ทั้งหมด โปรดทราบว่าขอบเขตเหล่านี้อาจไม่ตรงกับวิวพอร์ตที่แนะนำ (สำหรับ ตัวอย่างเช่น ซานฟรานซิสโกมี Farallon หมู่เกาะ ซึ่งในทางเทคนิคแล้วเป็นส่วนหนึ่งของเมือง แต่ไม่ควร แสดงในวิวพอร์ต)

Geocoder จะส่งคืนที่อยู่โดยใช้การตั้งค่าที่เบราว์เซอร์ต้องการ การตั้งค่าภาษา หรือภาษาที่ระบุเมื่อโหลด JavaScript ของ API โดยใช้พารามิเตอร์ language (สำหรับข้อมูลเพิ่มเติม โปรดดู การแปล)

ประเภทที่อยู่และประเภทคอมโพเนนต์ที่อยู่

อาร์เรย์ types[] ใน GeocoderResult บ่งบอกถึง ประเภทที่อยู่ ระบบอาจแสดงผลอาร์เรย์ types[] ด้วย ภายใน GeocoderAddressComponent เพื่อระบุประเภทขององค์ประกอบที่อยู่นั้นๆ ที่อยู่ที่ส่งกลับ โดยโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์อาจมีได้หลายประเภท อาจพิจารณาประเภทเป็นแท็กได้ ตัวอย่างเช่น หลายๆ เมืองมีการติดแท็ก political และ ประเภท locality

ประเภทต่อไปนี้ได้รับการสนับสนุนและส่งกลับโดยโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ในทั้ง ประเภทที่อยู่และประเภทคอมโพเนนต์ที่อยู่

  • street_address ระบุที่อยู่ที่ถูกต้องแม่นยำ
  • route ระบุเส้นทางที่มีชื่อ (เช่น "US 101")
  • intersection หมายถึงทางแยกหลัก ซึ่งโดยปกติคือสี่แยก ถนนสายหลัก
  • political บ่งชี้ถึงหน่วยงานทางการเมือง โดยปกติ ประเภทนี้ แสดงถึงรูปหลายเหลี่ยมของการปกครองระบบพลเรือน
  • country หมายถึงหน่วยงานทางการเมืองระดับชาติ และ ซึ่งโดยทั่วไปจะเป็นประเภทลำดับสูงสุดที่มาจาก Geocoder
  • administrative_area_level_1 บ่งชี้ถึงคดีแพ่งในลำดับแรก ต่ำกว่าระดับประเทศ ในประเทศสหรัฐอเมริกา ระดับการดูแลระบบคือรัฐ มีบางประเทศเท่านั้นที่แสดงสิ่งเหล่านี้ ระดับผู้ดูแลระบบ ในกรณีส่วนใหญ่ admin_area_level_1 ชื่อย่อจะใกล้เคียงกับหมวดย่อย ISO 3166-2 มาก รายการที่เผยแพร่แล้ว แต่ก็ไม่อาจรับประกันได้ว่า ผลจากการระบุพิกัดทางภูมิศาสตร์ของเรา ขึ้นอยู่กับสัญญาณและข้อมูลตำแหน่งต่างๆ
  • administrative_area_level_2 บ่งชี้ถึงคดีแพ่งลำดับที่ 2 ต่ำกว่าระดับประเทศ ในประเทศสหรัฐอเมริกา ระดับการดูแลระบบคือเขต มีบางประเทศเท่านั้นที่แสดงสิ่งเหล่านี้ ระดับผู้ดูแลระบบ
  • administrative_area_level_3 บ่งชี้ถึงคดีแพ่งที่ 3 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
  • administrative_area_level_4 หมายถึงแพ่งที่สี่ ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
  • administrative_area_level_5 หมายถึงแพ่งที่ 5 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
  • administrative_area_level_6 หมายถึงแพ่งที่ 6 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
  • administrative_area_level_7 หมายถึงแพ่งที่ 7 ต่ำกว่าระดับประเทศ ประเภทนี้หมายถึงการแบ่งแยกคดีผู้เยาว์ มีบางประเทศเท่านั้นที่จะแสดงระดับการปกครองเหล่านี้
  • colloquial_area หมายถึงชื่ออื่นที่ใช้กันโดยทั่วไป สำหรับเอนทิตี
  • locality หมายถึงเมืองหรือเมืองที่รวมอยู่ทางการเมือง เอนทิตี
  • sublocality หมายถึงนิติบุคคลลำดับที่หนึ่งภายใต้ ย่าน สำหรับสถานที่บางแห่งอาจได้รับประเภทเพิ่มเติมอีก 1 ประเภทดังนี้ sublocality_level_1 ไปยัง sublocality_level_5 ระดับย่านย่อยแต่ละระดับเป็นนิติบุคคลพลเรือน ยิ่งมาก ก็แสดงว่าค่า พื้นที่ทางภูมิศาสตร์
  • neighborhood หมายถึงย่านใกล้เคียงที่มีชื่อ
  • premise ระบุตำแหน่งที่มีชื่อ ซึ่งโดยปกติเป็นอาคาร หรือ กลุ่มอาคารที่มีชื่อทั่วไป
  • subpremise หมายถึงเอนทิตีที่มีการสั่งซื้อครั้งแรกด้านล่างชื่อ สถานที่ตั้งซึ่งมักจะเป็นอาคารเดียวภายในกลุ่มอาคารที่มี ชื่อทั่วไป
  • plus_code หมายถึงการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มา จากละติจูดและลองจิจูด Plus Codes สามารถใช้แทนโค้ด ที่อยู่ในสถานที่ที่ไม่มีอยู่ (ที่อาคารไม่มีหมายเลขกำกับ หรือ ไม่มีชื่อถนน) ดู https://plus.codes เพื่อดูรายละเอียด
  • postal_code หมายถึงรหัสไปรษณีย์ตามที่ใช้ระบุรหัสไปรษณีย์ ไปรษณีย์ภายในประเทศ
  • natural_feature หมายถึงองค์ประกอบทางธรรมชาติที่โดดเด่น
  • airport หมายถึงสนามบิน
  • park หมายถึงสวนสาธารณะที่มีชื่อ
  • point_of_interest หมายถึงจุดสนใจที่มีชื่อ โดยปกติแล้ว "จุดที่น่าสนใจ" เหล่านี้จะเป็นเอนทิตีในพื้นที่ที่โดดเด่นซึ่งไม่สามารถจัดวางได้ง่าย ในหมวดหมู่อื่น เช่น "ตึกเอ็มไพร์สเตท" หรือ "หอไอเฟล"

รายการประเภทที่ว่างเปล่าหมายความว่าไม่มีประเภทที่รู้จักสำหรับ เช่น Lieu-dit ในฝรั่งเศส

นอกเหนือจากที่กล่าวมาข้างต้น องค์ประกอบที่อยู่อาจรวมถึงประเภทด้านล่างด้วย

หมายเหตุ: รายการนี้ไม่ครอบคลุมข้อมูลทั้งหมด อาจมีการเปลี่ยนแปลง

  • floor แสดงชั้นของที่อยู่อาคาร
  • โดยทั่วไปแล้ว establishment จะระบุสถานที่ที่ยังไม่ได้ ได้รับการจัดหมวดหมู่แล้ว
  • landmark หมายถึงสถานที่ใกล้เคียงที่ใช้เป็นข้อมูลอ้างอิง เพื่อช่วยนำทาง
  • point_of_interest หมายถึงจุดสนใจที่มีชื่อ
  • parking หมายถึงที่จอดรถหรือโครงสร้างที่จอดรถ
  • post_box หมายถึงตู้ไปรษณีย์ที่เฉพาะเจาะจง
  • postal_town แสดงถึงการจัดกลุ่มพื้นที่ทางภูมิศาสตร์ เช่น locality และ sublocality ใช้สำหรับที่อยู่ทางไปรษณีย์ ในบางประเทศ
  • room ระบุห้องของที่อยู่อาคาร
  • street_number ระบุหมายเลขถนนที่แม่นยำ
  • bus_station, train_station และ transit_station ระบุตำแหน่งของรถประจำทาง รถไฟ หรือสาธารณะ ป้ายจอดรถสาธารณะ

รหัสสถานะ

โค้ด status อาจแสดงค่าใดค่าหนึ่งต่อไปนี้

  • "OK" ระบุว่าไม่มีข้อผิดพลาดเกิดขึ้น ที่อยู่ถูกแยกวิเคราะห์สำเร็จแล้ว และ มีการส่งรหัสพิกัดภูมิศาสตร์อย่างน้อยหนึ่งรายการ
  • "ZERO_RESULTS" ระบุว่ารหัสพิกัดภูมิศาสตร์เสร็จสมบูรณ์ แต่ไม่มีผลลัพธ์ใดๆ กรณีนี้อาจเกิดขึ้นหากโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ถูกส่งผ่าน address ที่ไม่มีอยู่จริง
  • "OVER_QUERY_LIMIT" แสดงว่าคุณใช้เกินโควต้าแล้ว
  • "REQUEST_DENIED" บ่งบอกว่าคำขอของคุณถูกปฏิเสธ หน้าเว็บไม่ได้ ได้รับอนุญาตให้ใช้โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์
  • โดยทั่วไป "INVALID_REQUEST" จะแสดงให้ทราบว่าคำค้นหา (address, components หรือ latlng) หายไป
  • "UNKNOWN_ERROR" ระบุว่าคำขอไม่สามารถ ประมวลผลเนื่องจากข้อผิดพลาดของเซิร์ฟเวอร์ คำขออาจดำเนินการสำเร็จหากคุณ ลองอีกครั้ง
  • "ERROR" บ่งชี้ว่าคำขอหมดเวลาหรือ เกิดปัญหาในการติดต่อกับเซิร์ฟเวอร์ของ Google คำขออาจดำเนินการสำเร็จหากคุณ ลองอีกครั้ง

ในตัวอย่างนี้ เราเข้ารหัสพิกัดภูมิศาสตร์กับที่อยู่ และวางเครื่องหมายไว้ตามที่อยู่ที่ระบุ ละติจูดและลองจิจูด โปรดทราบว่าเครื่องจัดการถูกส่งมาในรูปแบบ ลิเทอรัลฟังก์ชันแบบไม่ระบุชื่อ

  var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var mapOptions = {
      zoom: 8,
      center: latlng
    }
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
  }

  function codeAddress() {
    var address = document.getElementById('address').value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == 'OK') {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
  }

<body onload="initialize()">
 <div id="map" style="width: 320px; height: 480px;"></div>
  <div>
    <input id="address" type="textbox" value="Sydney, NSW">
    <input type="button" value="Encode" onclick="codeAddress()">
  </div>
</body>

ดูตัวอย่าง

การให้น้ำหนักวิวพอร์ต

คุณสามารถสั่งให้บริการ Geocoding ต้องการผลการค้นหาภายใน วิวพอร์ต (แสดงเป็นกรอบล้อมรอบ) คุณสามารถทำได้โดยการตั้งค่า พารามิเตอร์ bounds ภายในออบเจ็กต์ GeocoderRequest เพื่อกําหนดขอบเขตของวิวพอร์ตนี้ โปรดทราบว่าการให้น้ำหนักพิเศษกับ ต้องการผลลัพธ์ภายในขอบเขต หากมีผลการค้นหาที่เกี่ยวข้องมากกว่า แต่อยู่นอกขอบเขตเหล่านี้ ก็อาจรวมได้

เช่น รหัสพิกัดภูมิศาสตร์สำหรับ "Winnetka" มักจะส่งคืนชานเมืองชิคาโกนี้:

{
  "types":["locality","political"],
  "formatted_address":"Winnetka, IL, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["locality","political"]
  },{
    "long_name":"Illinois",
    "short_name":"IL",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "geometry":{
    "location":[ -87.7417070, 42.1083080],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJW8Va5TnED4gRY91Ng47qy3Q"
}

แต่การระบุพารามิเตอร์ bounds ที่กําหนดกรอบล้อมรอบ ของซานเฟอร์นันโดวัลเลย์ของลอสแอนเจลิสส่งผลให้รหัสพิกัดภูมิศาสตร์นี้ส่งคืน ย่านที่ชื่อ "Winnetka" ในตำแหน่งดังกล่าว

{
  "types":["sublocality","political"],
  "formatted_address":"Winnetka, California, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["sublocality","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "types":["administrative_area_level_3","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "types":["administrative_area_level_2","political"]
  },{
    "long_name":"California",
    "short_name":"CA",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "geometry":{
    "location": [34.213171,-118.571022],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ"
}

การให้น้ำหนักรหัสภูมิภาค

คุณสามารถตั้งค่าบริการการระบุพิกัดทางภูมิศาสตร์เพื่อแสดงผลลัพธ์ที่มีความลำเอียงเฉพาะ ภูมิภาคโดยใช้พารามิเตอร์ region อย่างชัดแจ้ง พารามิเตอร์นี้ ใช้รหัสภูมิภาคซึ่งระบุเป็น Unicode แบบ 2 อักขระ (ไม่ใช่ตัวเลข) region [ภูมิภาค] แท็กเหล่านี้จะจับคู่กับ ccTLD ที่คุ้นเคยโดยตรง ("โดเมนระดับบนสุด") ค่าที่เป็นอักขระสองตัว เช่น "uk" ใน "co.uk" เป็นต้น ในบางกรณี ฟิลด์ แท็ก region ยังรองรับรหัส ISO-3166-1 ด้วย ซึ่งบางครั้ง แตกต่างจากค่า ccTLD (เช่น "GB" สำหรับ "บริเตนใหญ่")

เมื่อใช้พารามิเตอร์ region ให้ทำดังนี้

  • ระบุเพียงประเทศหรือภูมิภาคเดียว ระบบจะไม่สนใจค่าหลายค่า และ อาจส่งผลให้คำขอล้มเหลว
  • ใช้แท็กย่อยภูมิภาคที่มี 2 อักขระเท่านั้น (รูปแบบ Unicode CLDR) อื่นๆ ทั้งหมด จะทำให้เกิดข้อผิดพลาด
  • เฉพาะประเทศและภูมิภาคที่มีรายชื่ออยู่ใน Google ระบบรองรับรายละเอียดความครอบคลุมของแพลตฟอร์ม Maps

สามารถส่งคำขอการเข้ารหัสพิกัดภูมิศาสตร์สำหรับทุกโดเมนในโดเมนหลัก แอปพลิเคชัน Google Maps มีการระบุพิกัดทางภูมิศาสตร์ โปรดทราบว่าการให้น้ำหนักพิเศษ ต้องการผลลัพธ์สำหรับโดเมนที่ระบุเท่านั้น หากผลลัพธ์เกี่ยวข้องมากกว่า อยู่นอกโดเมนนี้ ซึ่งอาจรวมอยู่ในโดเมนดังกล่าว

เช่น รหัสพิกัดภูมิศาสตร์ของ "Toledo" แสดงผลการค้นหานี้เป็นค่าเริ่มต้น โดเมนสำหรับบริการ Geocoding เป็นสหรัฐอเมริกา:

{
  "types":["locality","political"],
  "formatted_address":"Toledo, OH, USA",
  "address_components":[{
    "long_name":"Toledo",
    "short_name":"Toledo",
    "types":["locality","political"]
  },{
    "long_name":"Ohio",
    "short_name":"OH",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "place_id": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw"
}

รหัสพิกัดภูมิศาสตร์สำหรับ "Toledo" โดยตั้งค่าช่อง region เป็น 'es' (สเปน) จะส่งคืนเมืองของสเปน

{
  "types":["locality","political"],
  "formatted_address":"Toledo, España",
  "address_components":[{
    "long_name":"Toledo",
    "short_name":"Toledo",
    "types":["locality","political"]
  },{
    "long_name":"Toledo",
    "short_name":"TO",
    "types":["administrative_area_level_2","political"]
  },{
    "long_name":"Castilla-La Mancha",
    "short_name":"CM",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"España",
    "short_name":"ES",
    "types":["country","political"]
  }],
  "place_id": "ChIJ8f21C60Lag0R_q11auhbf8Y"
}

การกรองคอมโพเนนต์

คุณสามารถตั้งบริการการระบุพิกัดทางภูมิศาสตร์ให้แสดงผลที่อยู่ที่ถูกจำกัด พื้นที่เฉพาะ โดยใช้ตัวกรองคอมโพเนนต์ ระบุตัวกรองใน componentRestrictions ค่าตัวกรองรองรับฟังก์ชัน วิธีการแก้ไขการสะกดคำและการจับคู่บางส่วนเหมือนกับการระบุพิกัดทางภูมิศาสตร์อื่นๆ คำขอ

โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะแสดงเฉพาะผลลัพธ์ที่ตรงกับคอมโพเนนต์ทั้งหมดเท่านั้น ตัวกรอง กล่าวคือ ระบบจะประเมินข้อกำหนดตัวกรองเป็น "และ" ไม่ใช่ หรือ

ตัวกรองคอมโพเนนต์ประกอบด้วยรายการต่อไปนี้อย่างน้อย 1 รายการ

  • route ตรงกับชื่อยาวหรือสั้นของเส้นทาง
  • locality จะจับคู่กับประเภทย่านและย่านย่อย
  • administrativeArea ตรงกับ ระดับเขตบริหาร
  • postalCode ตรงกับรหัสไปรษณีย์และคำนำหน้ารหัสไปรษณีย์
  • country ตรงกับชื่อประเทศหรือตัวอักษร 2 ตัว ISO 3166-1 รหัสประเทศ หมายเหตุ: API เป็นไปตามมาตรฐาน ISO สำหรับ กำหนดประเทศ และการกรองจะทำงานได้ดีที่สุดเมื่อใช้ รหัส ISO ที่เกี่ยวข้องของประเทศ

ตัวอย่างต่อไปนี้สาธิตการใช้ พารามิเตอร์ componentRestrictions ที่จะกรอง country และ postalCode:

function codeAddress() {
geocoder.geocode({
  componentRestrictions: {
    country: 'AU',
    postalCode: '2000'
  }
}, function(results, status) {
  if (status == 'OK') {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  } else {
    window.alert('Geocode was not successful for the following reason: ' + status);
  }
});
}

ดำเนินการตามคำสั่งซื้อเมื่อผลลัพธ์เป็น 0 รายการ

สำหรับการระบุพิกัดทางภูมิศาสตร์แบบย้อนกลับ โดยค่าเริ่มต้นแล้วสัญญาจะเสียหายในวันที่ status=ZERO_RESULTS อย่างไรก็ตาม ฟิลด์ระดับคําตอบเพิ่มเติมของ plus_code และ address_descriptor อาจยังคงเป็น ในกรณีนี้ หากระบุ "จริง" สำหรับพารามิเตอร์ fulfillOnZeroResults คำสัญญานั้นไม่เสียหาย และฟิลด์เพิ่มเติมเหล่านี้สามารถเข้าถึงได้จากสัญญาหากมี

ต่อไปนี้เป็นตัวอย่างของพฤติกรรมนี้สำหรับละติจูด/ลองจิจูดในทวีปแอนตาร์กติกา แม้ว่าจะไม่มีผลลัพธ์การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ แต่เราก็ยังสามารถพิมพ์โค้ด Plus ได้ ในสัญญา หากเราตั้งค่า fulfillOnZeroResults=true

    function addressDescriptorReverseGeocoding() {
      var latlng = new google.maps.LatLng(-75.290330, 38.653861);
      geocoder
        .geocode({
          'location': latlng,
          'fulfillOnZeroResults': true,
        })
        .then((response) => {
          console.log(response.plus_code);
        })
        .catch((error) => {
          window.alert(`Error`);
        });
    }
  

ตัวบอกที่อยู่

ข้อบ่งชี้ที่อยู่มีข้อมูลเพิ่มเติมที่ช่วยอธิบายสถานที่ โดยใช้จุดสังเกตและพื้นที่ ดูการสาธิตข้อบ่งชี้ที่อยู่ เพื่อสำรวจฟีเจอร์

คุณเปิดใช้ข้อบ่งชี้ที่อยู่ได้โดยใช้ extraComputations พารามิเตอร์ รวม extra_computations=ADDRESS_DESCRIPTORS ในคำขอเกี่ยวกับการระบุพิกัดทางภูมิศาสตร์ , คำขอเกี่ยวกับการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ หรือคำขอเกี่ยวกับการระบุพิกัดทางภูมิศาสตร์สำหรับสถานที่ เพื่อรับตัวบ่งชี้ที่อยู่ในคำตอบของคุณ

ตัวอย่างในการระบุพิกัดทางภูมิศาสตร์ของสถานที่ต่างๆ

ข้อความค้นหาต่อไปนี้มีที่อยู่ของสถานที่ในเดลี

function addressDescriptorPlaceIdLookup() {
  geocoder.geocode({ 
    'placeId': 'ChIJyxAX8Bj9DDkRgBfAnBYa66Q',
    'extraComputations': ['ADDRESS_DESCRIPTORS']
    }, function(results, status) {
    if (status == 'OK') {
      console.log(results[0].address_descriptor);
    } else {
      window.alert('Geocode was not successful for the following reason: ' + status);
    }
  });
}

ตัวอย่างในการเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ

ข้อความค้นหาต่อไปนี้มีค่าละติจูด/ลองจิจูดสำหรับตำแหน่งใน เดลี

    function addressDescriptorReverseGeocoding() {
      var latlng = new google.maps.LatLng(28.640964,77.235875);
      geocoder
        .geocode({
          'location': latlng,
          'extraComputations': ["ADDRESS_DESCRIPTORS"],
        })
        .then((response) => {
          console.log(response.address_descriptor);
        })
        .catch((error) => {
          window.alert(`Error`);
        });
    }
  

ตัวอย่างตัวบอกที่อยู่

ตัวอย่าง address_descriptor มีดังนี้

  {
    "address_descriptor" : {
       "areas" : [
          {
             "containment" : "OUTSKIRTS",
             "display_name" : {
                "language_code" : "en",
                "text" : "Turkman Gate"
             },
             "place_id" : "ChIJ_7LLvyb9DDkRMKKxP9YyXgs"
          },
          {
             "containment" : "OUTSKIRTS",
             "display_name" : {
                "language_code" : "en",
                "text" : "Chandni Chowk"
             },
             "place_id" : "ChIJWcXciBr9DDkRUb4dCDykTwI"
          },
          {
             "containment" : "NEAR",
             "display_name" : {
                "language_code" : "en",
                "text" : "Katar Ganj"
             },
             "place_id" : "ChIJH3cWUyH9DDkRaw-9CjvcRvY"
          }
       ],
       "landmarks" : [
          {
             "display_name" : {
                "language_code" : "en",
                "text" : "Delite Cinema"
             },
             "straight_line_distance_meters" : 29.9306755065918,
             "place_id" : "ChIJLfiYDCT9DDkROoEa7NdupUM",
             "travel_distance_meters" : 418.7794799804688,
             "spatial_relationship" : "ACROSS_THE_ROAD",
             "types" : [ "establishment", "movie_theater", "point_of_interest" ]
          },
          {
             "display_name" : {
                "language_code" : "en",
                "text" : "YES Bank"
             },
             "straight_line_distance_meters" : 66.83731079101562,
             "place_id" : "ChIJFYHM3yb9DDkRRKGkZl2mpSQ",
             "travel_distance_meters" : 489.0340270996094,
             "spatial_relationship" : "DOWN_THE_ROAD",
             "types" : [ "bank", "establishment", "finance", "point_of_interest" ]
          },
          {
             "display_name" : {
                "language_code" : "en",
                "text" : "UCO Bank"
             },
             "straight_line_distance_meters" : 25.38849639892578,
             "place_id" : "ChIJ-c6_wCb9DDkRjIk1LeqRtGM",
             "travel_distance_meters" : 403.2246398925781,
             "spatial_relationship" : "ACROSS_THE_ROAD",
             "types" : [ "atm", "bank", "establishment", "finance", "point_of_interest" ]
          },
          {
             "display_name" : {
                "language_code" : "en",
                "text" : "Delhi By Cycle Meeting Point"
             },
             "straight_line_distance_meters" : 44.02867126464844,
             "place_id" : "ChIJNxVfkSb9DDkRJD22l-eGFdM",
             "travel_distance_meters" : 97.41281890869141,
             "spatial_relationship" : "AROUND_THE_CORNER",
             "types" : [
                "establishment",
                "point_of_interest",
                "tourist_attraction",
                "travel_agency"
             ]
          },
          {
             "display_name" : {
                "language_code" : "en",
                "text" : "Axis Bank Branch"
             },
             "straight_line_distance_meters" : 102.3495178222656,
             "place_id" : "ChIJr3uaDCT9DDkR8roHTVSn1x4",
             "travel_distance_meters" : 330.8566284179688,
             "spatial_relationship" : "DOWN_THE_ROAD",
             "types" : [ "bank", "establishment", "finance", "point_of_interest" ]
          }
       ]
    }
  }

ออบเจ็กต์ address_descriptor แต่ละรายการมี 2 อาร์เรย์ ได้แก่ landmarks และ areas อาร์เรย์ landmarks มีผลลัพธ์ได้สูงสุด 5 รายการโดยจัดอันดับตาม โดยพิจารณาจากความใกล้กับพิกัดที่ต้องการ ความแพร่หลายของจุดสังเกตและการมองเห็น ผลลัพธ์จุดสังเกตแต่ละรายการจะมี ค่าต่อไปนี้

  • place_id คือรหัสสถานที่ของผลการค้นหาจุดสังเกต ดูรหัสสถานที่ ภาพรวม
  • display_name เป็นชื่อที่แสดงของจุดสังเกตและมี language_code และ text
  • straight_line_distance_meters คือจุดเพื่อเว้นระยะห่างเป็นเมตรระหว่างพิกัดอินพุตกับผลลัพธ์จุดสังเกต
  • travel_distance_meters คือระยะทางในหน่วยเมตรเมื่อเดินทางผ่านเครือข่ายถนน (โดยไม่คำนึงถึงข้อจำกัดทางถนน) ระหว่างพิกัดอินพุตและผลลัพธ์จุดสังเกต
  • spatial_relationship คือความสัมพันธ์โดยประมาณระหว่างพิกัดอินพุตกับผลลัพธ์จุดสังเกต:
    • "NEAR" คือความสัมพันธ์เริ่มต้นเมื่อไม่ตรงกับเงื่อนไขต่อไปนี้
    • "WITHIN" เมื่อพิกัดอินพุตอยู่ในขอบเขตของโครงสร้างที่เชื่อมโยงกับจุดสังเกต
    • "BESIDE" เมื่อพิกัดอินพุตอยู่ติดกันโดยตรงกับจุดเข้าใช้งานของจุดสังเกตหรือจุดสังเกต
    • "ACROSS_THE_ROAD" เมื่อพิกัดอินพุตอยู่ตรงข้ามจุดสังเกตโดยตรงในอีกด้านของเส้นทาง
    • "DOWN_THE_ROAD" เมื่อพิกัดอินพุตอยู่ในเส้นทางเดียวกันกับจุดสังเกต แต่ไม่ใช่ "BESIDES" หรือ "ACROSS_THE_ROAD"
    • "AROUND_THE_CORNER" เมื่อพิกัดอินพุตอยู่ในแนวเส้นตั้งฉากเป็นจุดสังเกต (จำกัดให้เลี้ยวเพียงครั้งเดียว)
    • "BEHIND" เมื่อพิกัดอินพุตอยู่ในบริเวณใกล้เคียงกับจุดสังเกต แต่อยู่ไกลจากจุดเข้าใช้งาน
  • types คือประเภทสถานที่ของจุดสังเกต

ออบเจ็กต์ areas มีคำตอบสูงสุด 3 รายการและจำกัดตัวเองไว้เฉพาะตำแหน่งที่ แสดงถึงภูมิภาคเล็กๆ เช่น ย่านใกล้เคียง ย่านย่อย และขนาดใหญ่ ที่ซับซ้อน พื้นที่ซึ่งมีพิกัดที่ขอจะแสดงขึ้นก่อนและ เรียงลำดับจากเล็กสุดไปใหญ่สุด ผลลัพธ์ areas แต่ละรายการจะมีข้อมูลต่อไปนี้ มีดังนี้

  • place_id คือรหัสสถานที่ของผลการค้นหาพื้นที่ ดูรหัสสถานที่ ภาพรวม
  • display_name เป็นชื่อที่แสดงของพื้นที่และมี language_code และ text
  • containment คือความสัมพันธ์ของการควบคุมกั้นโดยประมาณระหว่างพิกัดอินพุตกับผลลัพธ์พื้นที่:
    • "NEAR" คือความสัมพันธ์เริ่มต้นเมื่อไม่ตรงกับเงื่อนไขต่อไปนี้
    • "WITHIN" เมื่อพิกัดอินพุตอยู่ใกล้กับศูนย์กลางของพื้นที่
    • "OUTSKIRTS" เมื่อพิกัดอินพุตอยู่ใกล้กับขอบของพื้นที่

ความครอบคลุมของตัวบอกที่อยู่

ฟีเจอร์นี้มีให้บริการในบางตัวเลือกเท่านั้น ประเทศ

นี่เป็นฟีเจอร์เวอร์ชันตัวอย่างและเรายินดีรับฟังความคิดเห็น โปรดส่งอีเมล เราได้ที่ address-descriptors-feedback@google.com

การเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับ (การค้นหาที่อยู่)

โดยทั่วไปแล้ว คำว่าการเข้ารหัสพิกัดภูมิศาสตร์หมายถึงการแปลรหัสที่มนุษย์อ่านได้ ที่อยู่ลงในตำแหน่งหนึ่งบนแผนที่ เป็นกระบวนการในการสื่อสาร การแปลตำแหน่งบนแผนที่เป็นที่อยู่ที่มนุษย์อ่านได้นั้นเรียกว่า การเข้ารหัสภูมิศาสตร์ย้อนกลับ

แทนที่จะใส่ address แบบข้อความ ให้ใส่เครื่องหมายคอมมาที่คั่นด้วยคอมมา คู่ละติจูด/ลองจิจูดในพารามิเตอร์ location

ตัวอย่างต่อไปนี้จะกำหนดพิกัดของค่าละติจูด/ลองจิจูดให้มีค่าพิกัดที่จุดศูนย์กลาง เพื่อแสดงหน้าต่างข้อมูล พร้อมด้วยที่อยู่ที่มีรูปแบบ:

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.731, lng: -73.997 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodeLatLng(geocoder, map, infowindow);
    }
  );
}

function geocodeLatLng(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const input = (document.getElementById("latlng") as HTMLInputElement).value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.731, lng: -73.997 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodeLatLng(geocoder, map, infowindow);
  });
}

function geocodeLatLng(geocoder, map, infowindow) {
  const input = document.getElementById("latlng").value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
ดูตัวอย่าง

ลองใช้ตัวอย่าง

โปรดทราบว่าในตัวอย่างก่อนหน้านี้ เราแสดงผลลัพธ์แรกโดย กำลังเลือก results[0] โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับมักจะส่งคืนมากกว่า ผลลัพธ์มากกว่าหนึ่งรายการ ที่อยู่ที่ใช้รหัสพิกัดภูมิศาสตร์ไม่ได้หมายถึงที่อยู่ไปรษณีย์เท่านั้น แต่ยังเป็น ในการตั้งชื่อสถานที่ตั้งทางภูมิศาสตร์ ตัวอย่างเช่น เมื่อระบุพิกัดทางภูมิศาสตร์ของจุดใน ชิคาโก จุดพิกัดภูมิศาสตร์อาจมีป้ายกำกับเป็นที่อยู่ เป็นเมือง (ชิคาโก) เป็นรัฐ (อิลลินอยส์) หรือในฐานะประเทศ (สหรัฐอเมริกา สถานะ) ทั้งหมดเป็นที่อยู่ของโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์ โปรแกรมเข้ารหัสพิกัดย้อนกลับจะแสดงผลทั้งหมด ของผลลัพธ์เหล่านี้

โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับตรงกับเอนทิตีทางการเมือง (ประเทศ จังหวัด เมืองและย่านใกล้เคียง) ที่อยู่ และรหัสไปรษณีย์

ตัวอย่างรายการที่อยู่ที่การค้นหาข้างต้นอาจแสดงมีดังนี้

results[0].formatted_address: "277 Bedford Ave, Brooklyn, NY 11211, USA"
results[1].formatted_address: "Grand St/Bedford Av, Brooklyn, NY 11211, USA"
results[2].formatted_address: "Williamsburg, Brooklyn, NY, USA"
results[3].formatted_address: "Brooklyn, NY, USA"
results[4].formatted_address: "New York, NY, USA"
results[5].formatted_address: "Brooklyn, NY 11211, USA"
results[6].formatted_address: "Kings County, NY, USA"
results[7].formatted_address: "New York-Northern New Jersey-Long Island, NY-NJ-PA, USA"
results[8].formatted_address: "New York Metropolitan Area, USA"
results[9].formatted_address: "New York, USA"

ระบบจะส่งที่อยู่จากการจับคู่ที่ตรงกันมากที่สุดไปหาน้อยที่สุด โดยทั่วไป ที่อยู่ที่แน่นอนกว่าจะเป็นผลการค้นหาที่โดดเด่นที่สุด ดังในกรณีนี้ โปรดทราบว่าเราแสดงผลที่อยู่ประเภทต่างๆ จากที่อยู่ที่เจาะจงที่สุด ที่อยู่ไปยังหน่วยงานทางการเมืองที่เจาะจงน้อยลง เช่น ย่านใกล้เคียง เมือง เคาน์ตี รัฐ ฯลฯ หากคุณต้องการจับคู่ที่อยู่ทั่วๆ ไป โปรดตรวจสอบช่อง results[].types

หมายเหตุ: ข้อมูลพิกัดภูมิศาสตร์ย้อนกลับไม่ถูกต้อง วิทยาศาสตร์ โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะพยายามหาตำแหน่งที่สามารถระบุข้อมูลที่อยู่ได้ที่ใกล้ที่สุด ในความอดทนบางอย่าง

การดึงข้อมูลที่อยู่สำหรับรหัสสถานที่

ป้อน placeId เพื่อค้นหาที่อยู่ของรหัสสถานที่ที่ระบุ รหัสสถานที่คือตัวระบุที่ไม่ซ้ำกันที่สามารถใช้กับ Google API อื่นๆ สำหรับ ตัวอย่างเช่น คุณสามารถระบุ placeId ที่แสดงผลโดย Roads API เพื่อรับ สำหรับจุดตัด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ โปรดดูที่ ภาพรวมรหัสสถานที่

เมื่อคุณระบุ placeId คำขอต้องไม่มีรายการใดๆ ฟิลด์ต่อไปนี้

  • address
  • latLng
  • location
  • componentRestrictions

ตัวอย่างต่อไปนี้ยอมรับรหัสสถานที่ ค้นหาที่อยู่ที่เกี่ยวข้อง แล้วตั้งศูนย์กลางของแผนที่ไว้ที่ตำแหน่งนั้น นอกจากนี้ยังจะแสดงหน้าต่างข้อมูล ที่อยู่ที่จัดรูปแบบของสถานที่ที่เกี่ยวข้อง:

TypeScript

// Initialize the map.
function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.72, lng: -73.96 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodePlaceId(geocoder, map, infowindow);
    }
  );
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const placeId = (document.getElementById("place-id") as HTMLInputElement)
    .value;

  geocoder
    .geocode({ placeId: placeId })
    .then(({ results }) => {
      if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new google.maps.Marker({
          map,
          position: results[0].geometry.location,
        });

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// Initialize the map.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.72, lng: -73.96 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodePlaceId(geocoder, map, infowindow);
  });
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(geocoder, map, infowindow) {
  const placeId = document.getElementById("place-id").value;

  geocoder
    .geocode({ placeId: placeId })
    .then(({ results }) => {
      if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new google.maps.Marker({
          map,
          position: results[0].geometry.location,
        });

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
ดูตัวอย่าง

ลองใช้ตัวอย่าง