ฉันจะใช้ ESRI REST API ได้อย่างไร


24

ESRI ประกาศว่าพวกเขาจะปล่อย API ArcGIS REST เป็นเทคโนโลยีแบบเปิด ฉันมี ISP ที่ใช้ SQL Server 2008 กับ IIS7

ไม่มีใครทราบถึงวิธีการที่ดีในการแสดงว่าฉันสามารถเขียน C # โดยใช้ WCF เพื่อแสดงตารางเชิงพื้นที่ที่สอดคล้องกับข้อกำหนดเฉพาะ (ESRI's ในอุดมคติหรือไม่)

ไม่มีใครรู้ว่าสเป็คของ ESRI อยู่ที่ไหน?

คำตอบ:


20

ปรากฏว่า ESRI เพิ่งเปิดตัวของพวกเขาGeoservices REST ข้อมูลจำเพาะ ฉันเชื่อว่านี่คือสิ่งที่คุณอาจมองหา


8

ฉันเพิ่งใช้ลิงก์ที่ Jason โพสต์ไว้ด้านบน ฉันไม่สามารถจินตนาการได้ว่ามันจะปล่อยออกเมื่อใดสเป็คอย่างเป็นทางการจะแตกต่างกันมาก ส่วนใหญ่เป็นแขนเสื้อของคุณจุดไฟ Fiddler โจมตีเซิร์ฟเวอร์ตัวอย่าง 10.0 และเริ่มแฮ็คไปที่การนำไปใช้งาน ไม่มีอะไรที่เป็นไปไม่ได้เพียงน่าเบื่อกับปัญหาเล็ก ๆ น้อย ๆ มากมายที่ต้องคำนึงถึง เราจะไม่ทำให้มันเข้ากันได้ 100% ของเรา แต่มันครอบคลุมถึง 85% และลูกค้า apis ทั้งหมดดูเหมือนจะทำงานได้ค่อนข้างดี (นั่นเป็นเหตุผลเดียวที่ฉันเริ่มต้นด้วย)

นี่คือแคตตาล็อกตัวอย่าง (มีข้อบกพร่องเล็ก ๆ น้อย ๆ มากมายอยู่ในนั้น :) [bFlood - ลบลิงค์เก่า]

เรากำลังใช้งานบน AppEngine (python) และมันค่อนข้างแน่นควบคู่ไปกับโครงสร้างเชิงพื้นที่ แต่มันอาจจะกลายเป็นโครงการ. NET WCF ที่เหมาะสม ไม่แน่ใจว่าเราจะแจกจ่ายมันอย่างไร

ไชโยไบรอัน

อัปเดต - 3/8/12 - ฉันเพิ่งเห็นโพสต์นี้ปรากฏขึ้นใน stackexchange ดังนั้นฉันจึงคิดว่าฉันจะอัปเดตเนื้อหา คุณสามารถให้ FeatureService ของคุณทำงานได้ในไม่กี่นาทีหากคุณลองใช้ Arc2Earth Sync เบต้า แบ็กเอนด์ทำงานร่วมกับ Google Fusion Tables และCartoDBแต่เราจะสนับสนุนผู้ให้บริการรายอื่นเร็ว ๆ นี้ คุณไม่ต้องการอะไรเลยนอกจาก ArcView 9.2 หรือสูงกว่า ...

นี่คือโพสต์บล็อกที่แสดงวิธีเริ่มรวบรวมข้อมูลภาคสนามในไม่กี่นาทีโดยใช้แอพมือถือ ArcGIS.com: http://www.arc2earth.com/2012/03/arc2earth-sync-live-mobile-data-collection-in-5 -minutes /


2
ไบรอันน้ำท่วม? Kirk Kuykendall? มันเหมือนว่าทั้งวงฟอรั่ม ESRI กลับมารวมกันอีกครั้ง!
เซบาสเตียนกู๊ด

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

2
@kirk - ใช่ฉันคาดว่าโครงการชุมชนจะเริ่มต้นในบางจุด มันจะต้องมีความยืดหยุ่นเพียงพอที่จะอนุญาตให้มีแบ็กเอนด์เชิงพื้นที่หลายอันอาจเป็นสถาปัตยกรรมปลั๊กอินที่จะเชื่อมโยงแผนที่ / เลเยอร์ / คุณลักษณะของผู้ให้บริการใด ๆ (เช่น sql azure, postgis, geoserver, mapguide ฯลฯ ) @Sebastian ค้นหาที่ใช้งานได้จริง ไชโย!
bFlood

7

เอกสารเดียวที่ฉันรู้สำหรับ REST API ของ esri อยู่ในความช่วยเหลือออนไลน์ของพวกเขาที่นี่:

http://help.arcgis.com/EN/arcgisserver/10.0/apis/rest/index.html

สิ่งนี้เขียนขึ้นจากมุมมองของผู้บริโภคมากกว่าผู้ให้บริการ แต่ควรแฮ็ก

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

เช่นกัน REST API บางตัวก็ไม่ได้สงบเป็นพิเศษ ตัวอย่างเช่นดูที่ Feature Service ดูเหมือนจะมี "ปลายทาง" แยกต่างหากสำหรับการเพิ่ม / อัปเดต / ลบ / แบบสอบถามแทนที่จะใช้คำกริยา HTTP มาตรฐานเพื่อใช้งานกับทรัพยากร ปริศนานี้ฉัน ฉันรู้ว่า esri มีคนฉลาดที่นั่นบ้างที่เข้าใจ REST ฉันเดาว่าการโทรเหล่านี้แมปไปยังอินเตอร์เฟส SOAP บางประเภทและ esri รู้สึกว่ามันจะง่ายขึ้นสำหรับพวกเขาและลูกค้าของพวกเขาหากพวกเขายังคงความสอดคล้องระหว่างพวกเขา

ความคิดเห็นของฉัน? หากคุณกำลังดูข้อมูลที่ใช้ร่วมกันเท่านั้น (ไม่ใช่การกำหนดค่าแผนที่ข้อมูลเมตาและอื่น ๆ ) และไม่รีบร้อนคุณอาจรอจนกว่า Microsoft จะสรุปว่าพวกเขาจะเป็นตัวแทนของประเภทข้อมูลเชิงพื้นที่ใน EDM อย่างไร เมื่อใช้สิ่งนี้คุณสามารถสร้างการเข้าถึง RESTful อย่างแท้จริงให้กับตารางอวกาศของคุณโดยใช้ OData และอาจใช้ OData ที่เปิดใช้งาน RIA ได้ นี่อาจเป็นพายในท้องฟ้าสำหรับทุกสิ่งที่ฉันรู้


ขอบคุณเจสัน นั่นเป็นจุดที่ดีเกี่ยวกับรูปแบบผลลัพธ์ที่เป็นกรรมสิทธิ์ ผ่านครั้งแรกฉันแค่ต้องการ json, html และรูปภาพ สิ่งที่ฉันต้องการคือโครงการ C # ที่ใช้ WCF WebHttp Services ใน. NET 4 เพื่อดึงข้อมูลจาก Sql Server 2008 และกลับมาในรูปแบบที่เว็บ SDK ใด ๆ ของ ESRI สามารถแยกย่อยได้
Kirk Kuykendall

ขอโทษด้วยใช่ ฉันพลาดข้อความย่อยที่คุณต้องการให้บริการซอฟต์แวร์ไคลเอ็นต์ esri แน่นอนว่าควรใช้ API ในกรณีนี้
JasonBirch

2

คุณกำลังดูตารางอวกาศจาก SQL Server 2008 Spatial หรือไม่? ESRI MapIt ทำสิ่งนี้ไปแล้วและฉันเชื่อว่าการอนุญาตให้ผู้ที่มี AGS สามารถเข้าถึง ESRI MapIt ได้

หน้าจอบางอย่างของสิ่งที่ดูเหมือนว่าสามารถพบได้ในบล็อกของฉัน: http://geo.geek.nz/development/hiding-database-from-unauthorised-users-when-using-esri-mapit/gege.gd

ไม่จำเป็นต้องเขียนอะไรด้วยตัวเอง? ;)

ไชโย


สวัสดี Jithen เป็นบริการข้อมูลเชิงพื้นที่ที่กล่าวถึงใน PDF นี้ ( esri.com/library/brochures/pdfs/esri-mapit.pdf ) โดยใช้ ESRI REST API บริการ WCF หรืออะไรที่แตกต่างอย่างสิ้นเชิง? ฉันคาดเดาว่า MapIt นั้นไม่ว่างหากคุณไม่ได้ใช้ AGS ถ้าเป็นเช่นนั้นมันจะเป็นประโยชน์สำหรับชุมชนในการพัฒนาสิ่งที่เปิดเผย ESRI REST API โดยตรงจาก MS SQL Server Spatial โดยไม่มีค่าใช้จ่ายเพิ่มเติมโดยเฉพาะอย่างยิ่งสำหรับแอปขนาดเล็กที่สามารถวิ่งออกจาก SQL Express
JasonBirch

สวัสดี Jithen - ฉันดาวน์โหลด MapIT เวอร์ชันทดลองที่ 1.0 และในเวลานั้นฉันจำเป็นต้องติดตั้งลงในเครื่องเดียวกับที่ IIS กำลังทำงานอยู่ ISP ของฉันไม่อนุญาตสิ่งนี้ นอกจากนี้ฉันไม่สามารถเรียกใช้ MapIT บนเซิร์ฟเวอร์ dev จากนั้นปรับใช้เว็บไซต์ไปยังเซิร์ฟเวอร์ที่ใช้งานจริง - จะต้องทำงานบนเซิร์ฟเวอร์ที่ใช้งานจริง อาจมีการเปลี่ยนแปลงหรือไม่
Kirk Kuykendall

1
@ JasonBirch สวัสดี Jason, SDS เป็นการนำมาใช้แยกจาก REST API แต่ให้อินเทอร์เฟซที่คล้ายกันที่ให้คุณมีความสามารถในการเรียกใช้แบบสอบถามกับ SQL Server Spatial ตัวอย่างแบบสอบถาม: servername / SDS / ดาต้าเบส / แซนด์บ็อกซ์ / dbo.PostcodeBoundaries / ...การตอบสนองใด ๆ ที่สามารถอ่านได้ถ้าของ API ESRI MapIt มีจำนวนของคุณสมบัติที่สำคัญและมีประโยชน์ ตัวอย่างเช่นการฉายภาพตามทิศทางทันทีและตัวโหลดข้อมูลซึ่งไม่น่าจะเขียน
jiriteach

@ Kirk Hi Kirk, 1.1 รวมถึงคุณสมบัติใหม่จำนวนมากซึ่งส่วนใหญ่เป็นการปรับปรุงตัวโหลด แต่ยังสามารถปรับใช้ SDS ได้อย่างง่ายดาย ขณะนี้มีการสนับสนุน Azure ด้วยเช่นกัน MapIt เพียงต้องการ IIS และความสามารถในการพูดคุยกับ SQL Server ของคุณ จริง ๆ แล้วมันง่ายมากในการตั้งค่าและเรียกใช้ แต่ตามที่กล่าวไว้คือความสามารถในการปรับใช้กับสีฟ้าในขณะนี้ด้วย UI แบบไม่มีหัวเพื่อให้สิ่งนี้อาจช่วยคุณได้ ไชโย
jiriteach

2

ฉันได้ทำสิ่งนี้แล้วในแอปพลิเคชัน ฉันไม่ได้ใช้งาน REST api อย่างเต็มรูปแบบ แต่เพียงพอที่จะได้รับงานแบบสอบถามเพื่อเรียกใช้และจัดรูปแบบ JSON อย่างถูกต้อง ฉันใช้ ASP .NET MVC เพื่อสร้างจุดปลาย ฉันพยายามทำสิ่งนี้ประมาณหนึ่งปีที่ผ่านมาด้วย WCF และเอาต์พุต JSON ไม่ได้จัดรูปแบบในวิธีการทำงาน เคล็ดลับกับ MVC คือการทำให้แน่ใจว่าคุณมีผลลัพธ์ JSONP ซึ่งจะดึงพารามิเตอร์การสอบถามการโทรกลับและทำการตอบสนอง jsonp ที่ถูกต้อง ฉันจะพยายามโพสต์บางอย่าง คุณสามารถดูคำตอบได้ที่นี่:

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncidents/query?f=json&where=1%3D1&returnGeometry=true&spatialRel=esriSpatialRelIntersects&outFields= * & outSR = 4326 & callbacko_jpg.jpg

อย่างไรก็ตามใช้พารามิเตอร์โทรกลับเท่านั้น:

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncidents?callback=woot

แก้ไข: นี่คือวิธีการใช้ผล JSONP ใน ASP .NET MVC

/programming/758879/asp-net-mvc-returning-jsonp

แก้ไข # 2: นี่คือตัวอย่างรหัสที่ฉันสร้างขึ้นอย่างรวดเร็วและวางบนดรอปบ็อกซ์

http://dl.dropbox.com/u/28924446/EsriGeoServicesExampleMvc3.zip


1

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


ขอบคุณแดนดี้ฉันเดาว่าในที่สุดจะมีโครงการโอเพ่นซอร์ส ฉันคิดว่ามันแปลกที่ ESRI จะประกาศ แต่ไม่มีลิงก์ไปยังข้อมูลจำเพาะ ฉันไม่แน่ใจด้วยซ้ำว่าข้อมูลจำเพาะ REST API จะเป็นอย่างไร เป็นเพียงตัวอย่างของข้อมูลจำเพาะพร้อมตัวอย่างรหัสที่แสดงว่าจะใช้งานอย่างไร (ด้วย. NET) จะเป็นประโยชน์
Kirk Kuykendall

ฉันจำ hype ที่แพร่กระจายไปรอบ ๆ เพื่อให้ระบบ FGDB เปิด แต่ฉันคิดว่าพวกเขาเปิดโค้ด API ให้กับมันแทนที่จะเผยแพร่ spec ฉันจะไม่ทำให้ความหวังของคุณเพิ่มขึ้น แต่คุณควรจะสามารถนำสิ่งที่ใช้งานได้ง่าย ๆ ไปใช้กับเอกสารของผู้บริโภคอย่าง @JasonBirch
Dandy



-1

@ JasonBirch - ฉันคิดว่าการจับรางวัลหลักสำหรับการทำเช่นนี้คือความสามารถในการรวมเข้ากับ esri apps / apis / arcgis.com หาก esri ดึงปลั๊กโดยใช้สิ่งเหล่านี้ในราคาถูก (ฟรี) มันจะมีความสำคัญน้อยกว่ามาก มันไม่ชัดเจนสำหรับฉันในสิ่งที่พวกเขาวางแผนที่จะทำกับ ArcGIS.com และแม้ว่ามันจะได้รับใบอนุญาตในขณะนี้ ฉันเห็นว่ามันเป็นศูนย์กลางสำหรับข้อมูล / บริการที่เว็บแอปพลิเคชั่นสามารถลงทะเบียนได้เช่นแอพสโตร์สำหรับข้อมูล esri บุคคลที่สามลงทะเบียนแอปเว็บ (คลาวด์) ที่มีผู้เช่าหลายคน esri ทำการตัดและแอพของคุณจะพร้อมใช้งานทันทีสำหรับผู้รับทุกคนที่เข้ากันได้กับข้อมูลจำเพาะส่วนที่เหลือ ในแง่นี้มันทำให้รู้สึกถึงการเปิด api ส่วนที่เหลือและให้บริการเป็นจำนวนมากเพื่อรวมกับฮับที่เป็นไปได้ การค้นหา / การจัดเก็บข้อมูลเชิงพื้นที่นั้นกำลังดำเนินไปอย่างรวดเร็วจนกลายเป็นสินค้าโภคภัณฑ์ดังนั้นให้เลื่อนขึ้นและพยายามควบคุมพื้นที่แอป

ฉันคิดว่าความคิดเห็น OData ของคุณมีข้อดี แต่ IMO นั่นเป็นวิธีที่ไม่ดี และที่สำคัญกว่านั้นหากไม่มีแอพไคลเอ็นต์ที่ได้รับการเผยแพร่อย่างกว้างขวางและเป็นที่นิยม (บางอย่างของ Google Earth) ข้อมูลจำเพาะใด ๆ ที่เป็นลายลักษณ์อักษรจะมีศักยภาพในการเหี่ยวแห้งในเถา ไม่บอกว่าเป็นกรณีของ OData มี MS devs ออกมามากมายที่จะติดตั้งสายนี้ฟรีใน VS แต่ฉันไม่เห็นมันในระยะสั้น 2 เซ็นต์ของฉัน ...

(btw ดูเหมือนจะมีความยาวความคิดเห็นสั้น ๆ ดังนั้นจึงเป็นคำตอบใหม่แทน)


1
ใช่ไซต์นี้ได้รับการออกแบบมาเพื่อหลีกเลี่ยงการสนทนา :) FYI, Haris และฉันกำลังทำงานผ่านการทำให้ OData ทำงานร่วมกับ GeoREST (เขากำลังทำงานฉันกำลังจู้จี้เรขาคณิตในสตริงที่มีแอตทริบิวต์ขยายระบุประเภท (KML / GML / GeoJSON)
JasonBirch

ฟังดูน่าสนใจจริงๆมีข้อมูลออนไลน์บ้างไหม?
bFlood

ยังไม่ได้ แต่ชอบที่จะพูดคุยเกี่ยวกับมัน เราได้มากกว่าที่คิดว่ามันหลายครั้งแล้ว :) BTW ถ้ารวม @ ชื่อผู้ใช้ของฉันฉันได้รับการแจ้งเตือนของการตอบสนอง :)
JasonBirch

อ่าาาาาา @JasonBirch มัน (ควรจะเดาได้นะ) ลองแชทกันเถอะฉันชอบที่จะแขวน OData รองรับเมฆ A2E (ตราบใดที่มีวิธีการที่มีเหตุผลสำหรับการจัดการรูปทรงเรขาคณิต แต่ตอนนี้ฉันรู้ว่าคุณและฮาริสอยู่ในกรณีเราทุกคนดี!)
bFlood
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.