รหัสภูมิศาสตร์จำนวน 20 ล้านที่อยู่ในสหรัฐอเมริกา


34

มีฐานข้อมูลฟรีหรือราคาสมเหตุสมผลสำหรับสหรัฐอเมริกาซึ่งสามารถค้นหาและส่งคืนข้อมูลละติจูดและลองจิจูดได้หรือไม่?


เร็วดี แต่ความแม่นยำคือทุกสิ่ง - Wyatt Earp เมื่อจัดการกับ geocoder มีบางอย่าง (เช่นที่อ้างอิงในเธรดนี้) ที่เสนอราคาต่ำในการเข้ารหัส geocode จำนวนมาก แต่ถ้าคุณกำลังมองหาความแม่นยำที่ดีมากในหลาย ๆ พื้นที่คุณต้องไปด้วย geocoder พรีเมี่ยม ผลลัพธ์จะมีความสอดคล้องและแม่นยำยิ่งขึ้นโดยเฉพาะเมื่อการจับคู่ทางไปรษณีย์ไม่เกิดขึ้น มีไม่มากที่คุณสามารถแข่งขันได้เมื่อมันมาถึงการเข้ารหัสทางภูมิศาสตร์ที่แม่นยำที่สุดมิฉะนั้นการคำนวณของคุณจะไม่ขึ้นกับเทคโนโลยีอื่น ๆ ที่เสนอผู้ใช้ t

2
คุณเสนอความคิดเห็นเกี่ยวกับความต้องการคุณภาพสูง แต่ไม่มีข้อเสนอแนะ โปรดระบุคำแนะนำของคุณมิฉะนั้นจะไม่ช่วยตอบคำถามผู้ใช้
RyanDalton

คำตอบ:


30

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

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

ตัวเลือกฟรีจะใช้ชุดข้อมูลการสำรวจสำมะโนประชากร TIGER ซึ่งคุณจะต้องโหลดลงในฐานข้อมูลเชิงพื้นที่ คุณสามารถค้นหาไลบรารีที่geocode กับ TIGER สำหรับ PostGIS หรือแม้กระทั่ง SQLite Heck คุณสามารถใช้ArcGIS เพื่อเข้ารหัสภูมิศาสตร์กับ TIGER ได้ แน่นอนว่า ArcGIS นั้นไม่ฟรีซึ่งทำให้ฉันมีทางเลือกทางการค้าต่อไป หากคุณมีสิทธิ์ใช้งาน ArcGIS คุณมี StreetMap DVD พร้อมชุดข้อมูล TeleAtlas ( ฉันหมายถึง Tom Tom ) หรือชุดข้อมูล Navteq ขึ้นอยู่กับว่าคุณได้รับStreetMap Premium ที่แถมมา ชุดข้อมูลใด ๆ เหล่านั้นอาจจะให้ผลลัพธ์ที่สอดคล้องกันมากกว่า TIGER

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


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

26

ฉันทำงานที่ SmartyStreets (บริษัท ตรวจสอบที่อยู่) บริการของเราฟรีสำหรับทุกคน (จนถึงระดับพื้นฐาน) ผู้เริ่มต้นสามารถขอใช้บริการของเราได้ฟรีในปีแรก ดังนั้นหากคุณเหมาะสมกับการจัดประเภทนั้นจะไม่มีค่าใช้จ่ายสำหรับบริการไม่ จำกัด ของเราเป็นเวลาหนึ่งปี ..

Ragi แนะนำให้ใช้บริการเว็บอย่างไรก็ตาม API ของเราสามารถทำความสะอาดสร้างมาตรฐานและระบุตำแหน่งทางภูมิศาสตร์ 20 ล้านที่อยู่สำหรับคุณในเวลาประมาณ 5 ชั่วโมง (ประมาณ 1,000 ต่อวินาที) บางช่วงเวลานั้นจะขึ้นอยู่กับความเร็วของเครื่อง (จำนวนคอร์ที่คุณมี) และการเชื่อมต่อเครือข่ายของคุณ (อย่าลองผ่าน 3G แต่การเชื่อมต่อบรอดแบนด์มาตรฐานจะทำได้ดี)

แค่อยากจะชี้ให้เห็นว่าเป็นไปได้อย่างแน่นอนกับ webservice

อัปเดต: ตั้งแต่ 1Aug2017 ฉันได้ทดสอบบริการเว็บของเราจากระยะไกลแล้วและได้รับการค้นหา 70,000 ครั้งต่อวินาทีโดยใช้ MacBook Pro รุ่นเดียวของปี 2015 บนเครือข่ายไร้สาย ใช่มันค่อนข้างเร็ว นั่นหมายความว่ารายการเล็ก ๆ เช่นที่อยู่ 20 ล้านรายการจะใช้เวลาประมาณ 5 นาที


2
ดีถ้าคุณจะให้เขา geocode 20 ล้านระเบียนโดยไม่ต้องชาร์จเขาเล็กน้อยและสามารถทำได้ 1,000 / คำขอต่อวินาที (ที่น่าประทับใจมาก) แล้วของหลักสูตรนี้เป็นทางออกที่ดีกว่าการสร้างสแต็คของคุณเองจากรอยขีดข่วน
Ragi Yaser Burhum

1
อย่างแน่นอน 1,000 / วินาทีไม่ใช่ค่าสูงสุด มันเป็นแค่มาตรฐานที่ดี มัลติเธรดหลายคอร์และการเชื่อมต่อเครือข่ายที่เร็วขึ้นสามารถเพิ่มปริมาณงานได้ เรามีลูกค้าที่ไม่แสวงหากำไรที่เพิ่งใช้บริการของเราเพื่อประมวลผลที่อยู่ 180 ล้านที่อยู่ เมื่อการเลือกตั้งระดับชาติปรากฏขึ้นกลุ่มคนจำนวนมากพยายามที่จะทำความสะอาดและใส่รหัสที่อยู่ของพวกเขา
Jeffrey

1
@RagiYaserBurhum โปรดทราบว่า Chris กำลังมองหาโซลูชัน "ราคาสมเหตุสมผล" ด้วย แน่นอนว่าการสร้างสแต็กของคุณเองตั้งแต่เริ่มต้นอาจเป็น "ฟรี" แต่จริง ๆ แล้วเมื่อคุณพิจารณาโอกาสในการลงทุนของคุณ? ประโยชน์ที่คุณจะได้รับจากการทำทั้งหมดด้วยตัวคุณเอง: อาจไม่มีค่าใช้จ่าย ("ฟรี") ประโยชน์ของการใช้บริการที่มีอยู่: ประหยัดเวลาหลายชั่วโมงและเวลา นอกจากนี้การร้องขอนับพัน / วินาทีอาจเป็นเรื่องปกติในปัจจุบันด้วยสถาปัตยกรรมเว็บที่ทันสมัย ​​(การขนาน) เพื่อจัดการกับปริมาณการใช้งานที่คงที่ ในที่สุดฉันคิดว่าสำหรับเรื่องนี้ "ฟรี" และ "ราคาสมเหตุสมผล" เป็นเรื่องของการตั้งค่า
Matt

1
@ มัดมือลง "ฟรี" ไม่เสมอฟรีฉันจะไม่โต้แย้งกับที่ (เวลาของคุณมีค่าเงิน) ฉันตระหนักดีว่าค่าใช้จ่ายสำหรับโซลูชันโอเพ่นซอร์สส่วนใหญ่นั้นจริงแล้วเป็นการเปลี่ยนแปลงรูปแบบต้นทุนจากใบอนุญาตการใช้งานไปเป็นการสนับสนุนบริการต่างๆ ฉันไม่ได้พยายามที่จะแดกดันฉันคิดว่าถ้า Jeffey สามารถเสนอวิธีแก้ปัญหาฟรี (หรือราคาสมเหตุสมผล) นี่เป็นทางออกที่ดีกว่า ในราคาจดทะเบียนที่ดีที่สุดจาก SmartyStreets คะแนน 20 ล้านจะเสียค่าใช้จ่าย $ 100,000 ฉันแน่ใจว่าแม้สำหรับกรณีการใช้งานเชิงพาณิชย์พวกเขาสามารถทำเศษเสี้ยวของต้นทุน
Ragi Yaser Burhum

1
นอกจากนี้ยัง 1000 / req ต่อวินาทีซึ่งเป็น doable มากในสถาปัตยกรรมร่วมสมัยจะยังคงต้องใช้วิศวกรรมที่น่ากลัวบางอย่างสำหรับการระบุพิกัดทางภูมิศาสตร์ พวกเขากำลังได้รับอุปกรณ์ประกอบฉากของฉันสำหรับการทำเช่นนั้น :)
Ragi Yaser Burhum

8

ฉันใช้คำแนะนำนี้อธิบายวิธีการสร้าง geocoder postgis โดยใช้ข้อมูล TigerLine 2010 ฉันกำลังใช้งานอยู่ตอนนี้ - มันไม่เร็วอย่างที่จะใช้เวลา 3 สัปดาห์ในการเข้ารหัส 2 ล้านที่อยู่

อย่างไรก็ตามไม่มีค่าใช้จ่ายใด ๆ และใช้ทักษะการเขียนโค้ดและ postgres น้อยกว่า 2 วันในการติดตั้งและโหลดด้วยข้อมูลของรัฐ (ใหญ่) เพื่อเริ่มการเข้ารหัสทางภูมิศาสตร์ ฉันยังไม่ได้ทำการปรับแต่ง postgres สำหรับระบบและมันกำลังรันบน NFS mounts ดังนั้นฉันสงสัยว่ามีหนึ่งหรือสองลำดับความสำคัญที่เพิ่มขึ้นของประสิทธิภาพที่ได้รับหากฉันต้องการ

แทนที่จะใช้บริการเว็บฉันโหลดที่อยู่ทั้งหมดของฉันลงในฐานข้อมูล postgres จากนั้นฉันใช้สคริปต์ Perl ที่รวดเร็วและสกปรกเพื่อเข้ารหัสตำแหน่งเหล่านี้ทีละรายการ:

perl -e for ($i=1; $i<[max_key_value]; $i+=1) 
   {printf "UPDATE source_addresses
               SET (rating, new_address, lon, lat) 
                     = (g.rating, pprint_addy(g.addy), 
                       ST_X(g.geomout), ST_Y(g.geomout) ) 
              FROM (SELECT DISTINCT ON (address_id) address_id, (g1.geo).* 
                      FROM (SELECT address_id, (geocode(address)) As geo 
                              FROM source_addresses As ag 
                             WHERE ag.rating IS NULL and address_id = $i 
                           ) As g1 
                     ORDER BY address_id, rating LIMIT 1
                   ) As g WHERE g.address_id = source_addresses.address_id;\n"
  } | psql -d geocoder 

(ตัวแบ่งบรรทัดสำหรับการอ่านเท่านั้น)

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


คุณพบข้อมูล 2010 TigerLine ไม่ถูกต้องสำหรับที่อยู่บางแห่งหรือไม่
Chris Muench

มันไม่ใช่ข้อมูลที่สมบูรณ์แบบไม่ว่าด้วยวิธีใดก็ตาม อย่างไรก็ตามข้อมูลที่อยู่ที่ฉันมีนั้นเป็นข้อมูลที่ไม่ถูกต้อง geocoder ตามที่เขียนจะให้ฟิลด์ "การให้คะแนน" โดยที่ต่ำกว่าดีกว่า ฉันจะเพิ่มตัวอย่างในคำตอบของฉัน
Adam Musch

@ChrisMuench: ถ้าคุณให้ที่อยู่แคลิฟอร์เนียหนึ่งหรือสองครั้งฉันยินดีที่จะยิงพวกเขาผ่าน geocoder ของฉันเพื่อแสดงให้คุณเห็น - ฉันไม่ได้เลือกพวกเขา
Adam Musch

ดีฉันลอง geocoder postgis สำหรับที่อยู่บางแห่งใน NY และพวกเขาอาจถูกปิดโดย 500 ฟุตถึง 1 ไมล์
Chris Muench

มันสายเกินไปสำหรับคุณ แต่คนอื่นอาจเห็นว่ามีประโยชน์ ... ตรวจสอบให้แน่ใจว่าที่อยู่ของคุณแยกวิเคราะห์ได้ดี ฉันพบว่าการตัดแบ่งฉันธรรมดา "123 Oak St. Anytown ST 12345" ถูกเร่งด้วย 550x เมื่อฉันเพิ่มเครื่องหมายจุลภาค: "123 Oak St. , Anytown, ST, 12345"
aaryno

3

ฉันเดาว่าคุณต้องการ Geocode แต่ไม่จ่ายอะไรเลยเหรอ? มีบริการมากมายที่คุณสามารถระบุรหัสทางภูมิศาสตร์ได้ถึง 20 ล้านรายการ แต่คุณจะต้องเสียค่าใช้จ่าย Esri, Pitney Bowes และข้อเสนออื่น ๆ บริการเหล่านี้ผ่านการสมัครสมาชิกหรือในราคาต่อหนึ่ง geocodes 20 ล้านนั้นไม่สำคัญ แต่ฉันคิดว่ามีกรณีธุรกิจสำหรับเรื่องนี้


3

ตำแหน่งของข้อมูลของคุณมีความสำคัญมากเนื่องจากคุณภาพของบริการบนเว็บมีการเปลี่ยนแปลง (ความแม่นยำขนาดและอื่น ๆ ) ฉันใส่รหัสภูมิศาสตร์ของฉันจาก google api, facebook api และ ex-simplegeo ด้วยฐานข้อมูลทางภูมิศาสตร์ของฉัน

เวลา Geocoding

http://blog.programmableweb.com/2012/06/21/7-free-geocoding-apis-google-bing-yahoo-and-mapquest/


3

โพสต์นี้อาจจะสายเกินไปที่จะช่วยผู้โพสต์ดั้งเดิม อย่างไรก็ตามสำหรับคนอื่นที่ต้องการดูข้อมูลจำนวนมากฟรีคุณสามารถตรวจสอบซอฟต์แวร์ของฉันที่ชื่อว่า "Easy Georeferencer" ซึ่งสร้างขึ้นอย่างอิสระใช้งานง่ายและทรงพลัง (ดูภาพหน้าจอที่ด้านล่างของโพสต์)

โปรแกรมนี้ใช้งานง่ายและตรงไปตรงมาและเรียกใช้โดยตรงจากไฟล์ exe ที่ไม่ต้องติดตั้ง คุณสามารถเลือกที่จะเข้ารหัสภูมิศาสตร์ระหว่างแหล่งข้อมูล GNS หรือ GeoNames และคุณสามารถทำสิ่งที่ไม่มี geocoder อื่น ๆ ที่สามารถทำได้จังหวัดรหัสภูมิศาสตร์ตามฐานข้อมูลหน่วยการบริหาร GADM รวมถึงขอบเขตประเทศประวัติศาสตร์ทางภูมิศาสตร์จากชุดข้อมูล CShapes ข้อแม้เดียวคือมันไม่ได้เข้ารหัสข้อมูลที่อยู่ทางภูมิศาสตร์ เอาท์พุททั้งหมดมาเป็นรูปร่างไฟล์พร้อมสำหรับการสร้างภาพ / การวิเคราะห์ทันทีใน GIS

เท่าที่เกี่ยวกับประสิทธิภาพและการจัดการข้อมูลขนาดใหญ่โปรแกรมได้รับการทดสอบเพื่อเข้ารหัส geocode 100,000 ระเบียนในเวลาเพียง 3 ชั่วโมง สำหรับชุดข้อมูลขนาดใหญ่การเพิ่มเวลาการประมวลผลที่คาดไว้ควรลดลงอย่างโค้งเนื่องจากช่วงเวลาการประมวลผลส่วนใหญ่ไปที่ระยะเริ่มต้นเท่านั้นเมื่อโหลดชุดข้อมูลอ้างอิงประเทศแล้ว แต่จะหยิบขึ้นมาหลังจากนั้น นอกจากนี้เราไม่ต้องกังวลเกี่ยวกับปัญหาคอขวดหรือปัญหาการเชื่อมต่ออินเทอร์เน็ตเมื่อใช้ geocoding ชุดข้อมูลขนาดใหญ่เพราะซอฟต์แวร์ชุดข้อมูลอ้างอิงและการประมวลผลทั้งหมดขึ้นอยู่กับคอมพิวเตอร์ในพื้นที่ อัตราการจับคู่สามารถรับได้มากถึง 80-90 เปอร์เซ็นต์เนื่องจากขึ้นอยู่กับการจับคู่บัญชีฟัซซี่เพื่อความแตกต่างของการสะกดคำ

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

สามารถดาวน์โหลดซอฟต์แวร์ได้จาก: http://geocodeanything.wordpress.com/

หวังว่าจะช่วย

ป้อนคำอธิบายรูปภาพที่นี่


คุณควรเปิดเผยว่าเป็นผู้แต่ง / ผู้พัฒนาและ / หรือทำงานให้กับ บริษัท ที่ผลิตผลิตภัณฑ์ซอฟต์แวร์
RyanDalton

@ RyanDalton ฉันได้เปิดเผยว่าฉันเป็นผู้เขียนเมื่อฉันเขียน "ซอฟต์แวร์ที่ฉันสร้างขึ้น" แม้ว่าฉันจะเห็นว่ามันอาจจะไม่มีใครสังเกตเห็นเพราะมันไม่ได้เน้นมากในประโยค มีการเปลี่ยนแปลงถ้อยคำของฉันเพื่อหวังว่าจะชัดเจนว่าฉัน condoning ซอฟต์แวร์ของตัวเอง
Karim Bahgat

2

ในขณะที่คุณกำลังระบุที่อยู่ทางภูมิศาสตร์ในสหรัฐอเมริกาฉันคิดว่าเครื่องมือStreet Address to Coordinatesจาก Data Science Toolkit ควรจะทำงานได้ดีสำหรับคุณ

This API takes either a single string representing a postal address, or a JSON-encoded  
array of addresses, and returns a JSON object with a key for every address. The value 
for each key is either null if no information was found for the address, or an object 
containing location information, including country, region, city and latitude/longitude 
coordinates.

คุณอาจต้องการดาวน์โหลดเครื่องเสมือนและเรียกใช้จากฮาร์ดแวร์ของคุณเอง ด้วยวิธีนี้คุณไม่ต้องกังวลกับข้อ จำกัด ของ API รวมถึงควบคุมด้วย โอ้และฉันบอกว่าฟรีหรือเปล่า ;-)


มันช่างน่าทึ่งมาก! ฉันประหลาดใจที่ฉันไม่เคยได้ยินมาก่อน นอกจากนี้ยังยอดเยี่ยมที่คุณสามารถดาวน์โหลด VM และพร้อมใช้งานบนระบบของคุณเองแล้ว
RyanDalton

มันเป็นโอเพ่นซอร์สเช่นกัน :) github.com/petewarden/dstk
RK

2

ฉันไม่เคยเห็นการอ้างอิงถึงระดับของความแม่นยำที่คุณต้องการ แต่ฉันสมมติว่าคุณต้องการหลังคาที่มีความยาวมากหรือใกล้เคียง คุณภาพของอินพุตที่อยู่สามารถเป็นปัจจัยได้เช่นกัน รายการที่อยู่ที่ได้รับการทำความสะอาดอย่างดีจะมีรหัสที่ดีกว่าและเร็วกว่ารายการที่อยู่ที่ไม่สมบูรณ์หรือไม่ดี อีกทั้งเป็นอัตราการเข้าชม 90% ที่ยอมรับได้หรือคุณต้องการที่อยู่ทั้งหมด 20 ล้านที่อยู่หรือไม่ ฉันไม่มีวิธีแก้ปัญหาฟรี แต่มีวิธีที่ไม่แพงอย่างที่ฉันรู้และใช้ ZP4 จาก Semaphore Corp, http://www.semaphorecorp.com/เสนอเครื่องฟอกที่อยู่ / geocoder และเพิ่มส่วนที่จะประมวลผลที่อยู่และส่งกลับที่อยู่ที่ทำความสะอาดธงซึ่งบ่งชี้ว่าที่อยู่ส่งมอบ USPS และ lat ยาวสำหรับ ZIP + 4 โดยทั่วไปความแม่นยำของ ZIP +4 นั้นใกล้เคียงกับความแม่นยำบนชั้นดาดฟ้าในพื้นที่ที่มีการสะสม (ด้านที่ถูกต้องของถนนและบนบล็อกที่ถูกต้อง) และไม่ปิดในพื้นที่ชนบท ค่าใช้จ่ายสำหรับใบอนุญาต 30 วันคือ $ 120 หลังจากนั้นเครื่องฟอกที่อยู่จะยังคงทำงาน แต่การตรวจสอบจุดส่งมอบ (DPV) และการส่งคืนตำแหน่งทางภูมิศาสตร์จะไม่ทำงาน ด้วยคอมพิวเตอร์ที่ค่อนข้างเร็วซึ่งถูกสร้างขึ้นภายในสองปีที่ผ่านมาและข้อมูล hte ทั้งหมดที่จัดเก็บและเข้าถึงได้ในท้องถิ่นจะมีการบันทึก 20 ล้านรายการในเวลาประมาณ 10 วัน ฉันใช้ที่อยู่ทางภูมิศาสตร์ในช่วง 15 ปีที่ผ่านมาและฉันได้ใช้ ZP4 มาเกือบตลอดเวลา ก่อนที่พวกเขาจะเสนอ lat-long หรือ DPV


2

ตอนนี้ฉันกำลังระบุที่อยู่ทางภูมิศาสตร์ 18 ล้านที่อยู่ดังนั้นฉันต้องการแชร์การตั้งค่าของฉัน

โดยทั่วไปฉันใช้เพลย์บุ๊ค ansible เพื่อตั้งค่าอินสแตนซ์ Amazon EC2 เป็นเซิร์ฟเวอร์ PostGIS Tiger Geocoder จากนั้นใช้สคริปต์เพื่อที่อยู่แบตช์รหัสทางภูมิศาสตร์ให้แมปกับบล็อกการสำรวจสำมะโนประชากร

ค่าใช้จ่ายของ Amazon EC2: ข้อกำหนดขั้นต่ำ 180G SSD ราคาประมาณ $ 18 / เดือน อินสแตนซ์ t2. large ของฉันมีค่าใช้จ่ายประมาณ $ 90 / เดือนโดยรวม

หากคุณมีกล่อง linux พร้อม SSD> 180G คุณสามารถใช้งานได้ฟรี

ประสิทธิภาพโดยเฉลี่ยของฉันอยู่ที่ประมาณ 170 ~ 300 ms / ที่อยู่คุณภาพดี 400 ~ 600 ms / ที่อยู่คุณภาพไม่ดี ตามคุณภาพไม่ดีฉันหมายถึงพวกเขาจำนวนมากมีเมืองที่ขาดหายไปหรือไม่ถูกต้องรหัสไปรษณีย์หรือแม้แต่ที่อยู่ผิด ที่อยู่ประเภทนี้ใช้เวลานานกว่าการเข้ารหัสทางภูมิศาสตร์ดังนั้นประสิทธิภาพของคุณขึ้นอยู่กับคุณภาพของอินพุต อินสแตนซ์ Amazon EC2 ที่ฉันใช้สามารถใส่รหัสทางภูมิศาสตร์ได้ประมาณ 4 ล้านที่อยู่ในรูปแบบที่ไม่ดีในหนึ่งเดือน

สำหรับรายละเอียดเพิ่มเติมดูโพสต์บล็อกของฉันเกี่ยวกับการตั้งค่าระบบและสคริปต์


1

AWS มีเซิร์ฟเวอร์ Geocoding จำนวนหนึ่งให้บริการในขณะนี้ รับเซิร์ฟเวอร์ของคุณเองและถ่ายโอนข้อมูลของคุณที่นั่น https://aws.amazon.com/marketplace/search/results/ref=dtl_navgno_search_box?page=1&searchTerms=geocode

https://aws.amazon.com/marketplace/pp/B013CW6HOA

https://aws.amazon.com/marketplace/pp/B0112MQ63Y


1

หากเวิร์กโฟลว์ของคุณอยู่ใน Python geopy เป็นโซลูชันที่ยอดเยี่ยม คุณสามารถเขียนตรรกะการเข้ารหัสภูมิศาสตร์พื้นฐานของคุณอย่างเป็นนามธรรมแล้วเลือกจากหนึ่งในผู้ให้บริการจำนวนมาก (ArcGIS, Baidu, Bing, DataBC, GeocodeFarm, GoecoderDotUS, GeoNames, Google, IGN ฝรั่งเศส, LiveAddress, NaviData, Nominatim (OSM), OpenCage, OpenMapQuest Yahoo! BOSS Place Finder, What3Words, Yandex ... วุ้ย) คุณสามารถใช้ทั้งหมดและท้ายที่สุดเลือกจุดที่มีความมั่นใจสูงสุดในการแก้ไขผ่านการตรวจสอบความถูกต้องโดยบริการ Geocoding หลายรายการ บริการเหล่านี้จำนวนมากต้องการการลงทะเบียน (แต่ไม่ใช่ทั้งหมด) พวกมันอาจจะไม่เหมาะกับการใช้ใน USA แต่ข้อดีของการทำมันด้วยฟังก์ชั่น Python ที่เรียบร้อยก็คือคุณควรควบคุมมันได้

นี่เป็นตัวอย่างสั้น ๆ :

from geopy.geocoders import Nominatim
geolocator = Nominatim(country_bias='New Zealand', timeout=4)
geocoded = geolocator.geocode('Raglan, Waikato', exactly_one=True)
if geocoded is not None:
    # success
    lat = geocoded.latitude
    lon = geocoded.longitude

https://geopy.readthedocs.org/en/1.10.0/

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


ฉันสามารถใช้ CSV กับสิ่งนี้ได้ไหม
Salman

แน่นอนว่าถ้าคุณอ่านด้วย Python
alphabetasoup

0

หากคำขอของคุณรหัสพิกัดไม่เกินวันละ 2,500 คุณสามารถใช้งาน Google Geocoding API คุณควรคร่าว ๆ ถึง api มันสามารถกลับไปเป็นผลลัพธ์เป็น json หรือ xml

จำกัด การใช้งาน:

การใช้ Google Geocoding API นั้นขึ้นอยู่กับข้อ จำกัด การสืบค้น 2,500 ตำแหน่งทางภูมิศาสตร์ต่อวัน (ผู้ใช้ Google Maps API สำหรับธุรกิจสามารถทำงานได้สูงสุด 100,000 คำขอต่อวัน)

ตัวอย่าง:

http://maps.google.com/maps/geo?key=yourkeyhere&output=json&q=520+3rd+Street+San+Francisco+CA

ตัวอย่างผลลัพธ์:

{
  "name": "520 3rd Street San Francisco CA",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [ {
    "id": "p1",
    "address": "520 3rd St, San Francisco, Kaliforniya 94107, Amerika Birleşik Devletleri",
    "AddressDetails": {
   "Accuracy" : 8,
   "Country" : {
      "AdministrativeArea" : {
         "AdministrativeAreaName" : "CA",
         "SubAdministrativeArea" : {
            "Locality" : {
               "LocalityName" : "San Francisco",
               "PostalCode" : {
                  "PostalCodeNumber" : "94107"
               },
               "Thoroughfare" : {
                  "ThoroughfareName" : "520 3rd St"
               }
            },
            "SubAdministrativeAreaName" : "San Francisco"
         }
      },
      "CountryName" : "USA",
      "CountryNameCode" : "US"
   }
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 37.7826364,
        "south": 37.7799384,
        "east": -122.3942267,
        "west": -122.3969247
      }
    },
    "Point": {
      "coordinates": [ -122.3955757, 37.7812874, 0 ]
    }
  } ]
}

และคุณสามารถตรวจสอบลิงก์ตัวอย่างสำหรับการค้นหาพิกัดภูมิศาสตร์จาก google:

1. รหัสเดียว

2. Reverse GeoCoding

3. เริ่มต้นด้วย Google GeoCoding

ฉันหวังว่ามันจะช่วยคุณ


15
ซึ่งจะใช้เวลาประมาณ 22 ปี (8,000 วัน) ในการเข้ารหัสภูมิศาสตร์ 20 ล้านแห่ง โซลูชั่นที่เหมาะสมโดยสิ้นเชิง
Andy W

ฉันรู้ว่านี้และฉันได้แสดงถ้าขอรหัสพิกัดของเขาไม่เกินต่อวันก็สามารถใช้งานได้ 2,500 ... นี่เป็นตัวเลือกถ้าเขาลาดเทพบวิธีการแก้ปัญหาใด ๆ
อารากอน

4
สิ่งนี้ละเมิดข้อกำหนดในการให้บริการ มันเป็นเรื่องผิดกฎหมายเว้นแต่คุณจะแสดงผลลัพธ์บน Google Map แม้ว่าคุณจะทำเช่นนั้นฉันก็พบว่า "ข้อโต้แย้งแคช" ที่บางคนใช้ขยายออกไปเล็กน้อยสำหรับคุณสมบัติ 20 ล้าน!
Ragi Yaser Burhum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.