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

ภาพรวม

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

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

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

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

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

ก่อนใช้บริการการแปลงที่อยู่เป็นพิกัดภูมิศาสตร์ใน Maps JavaScript API ก่อนอื่นให้ตรวจสอบว่าได้เปิดใช้ Geocoding API ในคอนโซล Google Cloud ในโปรเจ็กต์เดียวกับที่คุณตั้งค่าไว้สําหรับ 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 ในแดชบอร์ด

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

ราคา

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

นโยบาย

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

คำขอการแปลงที่อยู่เป็นพิกัดภูมิศาสตร์

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

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

ออบเจ็กต์ลิเทอรัล 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 อักขระ (ไม่ใช่ตัวเลข) ในกรณีส่วนใหญ่ แท็กเหล่านี้จะจับคู่กับค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") ที่คุ้นเคยโดยตรง พารามิเตอร์ region จะส่งผลต่อผลลัพธ์จากโปรแกรมเปลี่ยนที่อยู่เป็นพิกัดภูมิศาสตร์เท่านั้น แต่จะไม่ได้จํากัดผลลัพธ์อย่างเต็มรูปแบบ ดูข้อมูลเพิ่มเติมเกี่ยวกับการถ่วงน้ำหนักรหัสภูมิภาคได้ที่ด้านล่าง
  • extraComputations — ค่าเดียวที่อนุญาตสำหรับพารามิเตอร์นี้คือ ADDRESS_DESCRIPTORS ดูรายละเอียดเพิ่มเติมได้ใน ตัวระบุที่อยู่
  • fulfillOnZeroResults — ปฏิบัติตามสัญญาในสถานะ ZERO_RESULT ในการตอบกลับ ซึ่งอาจเป็นสิ่งที่ต้องการ เนื่องจากแม้จะไม่มีผลการจับคู่พิกัดภูมิศาสตร์เลย แต่ระบบอาจยังคงแสดงผลช่องระดับคำตอบเพิ่มเติม ดูรายละเอียดเพิ่มเติมใน Fulfill on Zero Results

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

บริการการแปลงพิกัดภูมิศาสตร์ต้องใช้เมธอดการเรียกกลับเพื่อดำเนินการเมื่อดึงข้อมูลผลลัพธ์ของตัวแปลงพิกัดภูมิศาสตร์ การเรียกกลับนี้ควรส่งพารามิเตอร์ 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 รายการขึ้นไปซึ่งระบุประเภทของฟีเจอร์ที่แสดงในผลการค้นหา ตัวอย่างเช่น พิกัดภูมิศาสตร์ของ "ชิคาโก" จะแสดงผลเป็น "สถานที่" ซึ่งบ่งบอกว่า "ชิคาโก" เป็นเมือง และแสดงผลเป็น "การเมือง" ซึ่งบ่งบอกว่าเป็นนิติบุคคลทางการเมือง ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่อยู่และประเภทองค์ประกอบที่อยู่ด้านล่าง
  • formatted_address คือสตริงที่มีที่อยู่ของสถานที่นี้ซึ่งมนุษย์อ่านได้

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

    ที่อยู่ที่จัดรูปแบบประกอบด้วยคอมโพเนนต์ที่อยู่อย่างน้อย 1 รายการตามตรรกะ ตัวอย่างเช่น ที่อยู่ "111 8th Avenue, New York, NY" ประกอบด้วยองค์ประกอบต่อไปนี้: "111" (หมายเลขถนน), "8th Avenue" (เส้นทาง), "New York" (เมือง) และ "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 Places API เพื่อดูรายละเอียดของธุรกิจในพื้นที่ เช่น หมายเลขโทรศัพท์ เวลาทําการ รีวิวของผู้ใช้ และอื่นๆ ดูภาพรวมของรหัสสถานที่
  • postcode_localities[] คืออาร์เรย์ที่แสดงสถานที่ทั้งหมดที่อยู่ในรหัสไปรษณีย์ และจะแสดงเฉพาะในกรณีที่ผลลัพธ์เป็นรหัสไปรษณีย์ที่มีสถานที่หลายแห่ง
  • geometry มีข้อมูลต่อไปนี้

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

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

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

ประเภทที่อยู่และประเภทองค์ประกอบที่อยู่

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

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

  • street_address ระบุที่อยู่ที่ถูกต้องแม่นยำ
  • route ระบุเส้นทางที่มีชื่อ (เช่น "US 101")
  • intersection ระบุเป็นทางแยกหลัก ซึ่งโดยปกติเป็นถนนหลัก 2 สาย
  • 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 หมายถึงนิติบุคคลลำดับที่ 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" ระบุว่าไม่มีข้อผิดพลาดเกิดขึ้น ที่อยู่แยกวิเคราะห์สำเร็จ และมีการส่งรหัสพิกัดภูมิศาสตร์อย่างน้อย 1 รายการกลับมา
  • "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>

ดูตัวอย่าง

การถ่วงน้ำหนักวิวพอร์ต

คุณสามารถสั่งให้บริการการแปลงพิกัดภูมิศาสตร์แสดงผลลัพธ์ภายในวิวพอร์ตที่ระบุ (แสดงเป็นกล่องขอบเขต) โดยตั้งค่าพารามิเตอร์ 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 ที่กําหนดขอบเขตสี่เหลี่ยมผืนผ้าสําหรับหุบเขาซานเฟอร์นันโดของลอสแอนเจลิสจะทําให้รหัสพิกัดภูมิศาสตร์นี้แสดงผลเป็นย่านชื่อ "วินเน็ตกา" ในตําแหน่งนั้น

{
  "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 อักขระ (ไม่ใช่ตัวเลข) แท็กเหล่านี้จะแมปกับค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") ที่คุ้นเคยโดยตรง เช่น "uk" ใน "co.uk" ในบางกรณี แท็ก region ยังรองรับรหัส ISO-3166-1 ด้วย ซึ่งบางครั้งจะแตกต่างจากค่า ccTLD ("GB" สำหรับ "บริเตนใหญ่" เป็นต้น)

เมื่อใช้พารามิเตอร์ region

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

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

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

{
  "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 ตรงกับชื่อประเทศหรือรหัสประเทศแบบ ISO 3166-1 2 ตัวอักษร หมายเหตุ: 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);
  }
});
}

ดำเนินการเมื่อไม่มีผลลัพธ์

สําหรับการแปลงพิกัดภูมิศาสตร์แบบย้อนกลับ ระบบจะถือว่าการรับประกันใช้งานไม่ได้ใน status=ZERO_RESULTS โดยค่าเริ่มต้น อย่างไรก็ตาม ในกรณีนี้ ระบบอาจยังคงป้อนข้อมูลในช่องระดับคำตอบเพิ่มเติมของ plus_code และ address_descriptor หากระบุ "จริง" สำหรับพารามิเตอร์ fulfillOnZeroResults ระบบจะป้อนข้อมูลในกรณีนี้ หากระบุค่า "จริง" สำหรับพารามิเตอร์ 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({
  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 มีดังนี้

  {
    "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" เมื่อพิกัดที่ป้อนอยู่ใกล้กับขอบของพื้นที่

ความครอบคลุมของคำอธิบายที่อยู่

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

ความคิดเห็น

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

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

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

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

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

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

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;
ดูตัวอย่าง

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