ภาพรวม
การระบุพิกัดทางภูมิศาสตร์คือ กระบวนการแปลงที่อยู่ (เช่น "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 ที่เปิดใช้
- ไปที่หน้า คอนโซล Google Cloud
- คลิกปุ่มเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์เดียวกับที่คุณสร้าง สำหรับ Maps JavaScript API แล้วคลิกเปิด
- จากรายการ API ในแดชบอร์ด ให้มองหา Geocoding API
- หากเห็น API ในรายการ แสดงว่าทุกอย่างเรียบร้อยแล้ว หากไม่อยู่ในรายการ API
เปิดใช้งาน:
- ที่ด้านบนของหน้า ให้เลือกเปิดใช้ API เพื่อแสดง คลัง หรือจากเมนูด้านซ้าย เลือกคลัง
- ค้นหา Geocoding API แล้วเลือกจาก รายการผลลัพธ์
- เลือกเปิดใช้ เมื่อกระบวนการเสร็จสิ้น 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
— ที่อยู่ที่คุณต้องการระบุพิกัดทางภูมิศาสตร์
หรือ
location
—LatLng
(หรือ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
หมายถึงหน่วยงานทางการเมืองระดับชาติ และ ซึ่งโดยทั่วไปจะเป็นประเภทลำดับสูงสุดที่มาจาก Geocoderadministrative_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;