คำถามติดแท็ก spatial

การจัดเก็บการสืบค้นและการจัดทำดัชนีข้อมูลเชิงพื้นที่ (รวมถึงการแสดงทางเรขาคณิตและทางภูมิศาสตร์)

1
การเสียหายของดัชนีเชิงพื้นที่ที่ไม่สามารถแก้ไขได้ถือว่าเป็นเรื่องปกติหรือไม่
ฉันมีดัชนีเชิงพื้นที่ซึ่งDBCC CHECKDBรายงานความเสียหาย: DBCC CHECKDB(MyDB) WITH EXTENDED_LOGICAL_CHECKS, DATA_PURITY, NO_INFOMSGS, ALL_ERRORMSGS, TABLERESULTS ดัชนีเชิงพื้นที่ดัชนี XML หรือมุมมองที่จัดทำดัชนี 'sys.extended_index_xxx_384000' (ID วัตถุ xxx) ไม่มีแถวทั้งหมดที่นิยามมุมมองสร้างขึ้น สิ่งนี้ไม่จำเป็นต้องแสดงถึงปัญหาด้านความสมบูรณ์ของข้อมูลในฐานข้อมูลนี้ ดัชนีปริภูมิดัชนี XML หรือมุมมองที่จัดทำดัชนี 'sys.extended_index_xxx_384000' (ID อ็อบเจ็กต์ xxx) มีแถวที่ไม่ได้สร้างขึ้นโดยการกำหนดมุมมอง สิ่งนี้ไม่จำเป็นต้องแสดงถึงปัญหาด้านความสมบูรณ์ของข้อมูลในฐานข้อมูลนี้ CHECKDB พบข้อผิดพลาดในการจัดสรร 0 ข้อและข้อผิดพลาดที่สอดคล้องกัน 2 ข้อในตาราง 'sys.extended_index_xxx_384000' (รหัสวัตถุ xxx) repair_rebuildระดับการซ่อมเป็น การปล่อยและสร้างดัชนีใหม่จะไม่ลบรายงานความเสียหายเหล่านี้ หากไม่มีEXTENDED_LOGICAL_CHECKSแต่ด้วยDATA_PURITYข้อผิดพลาดจะไม่ถูกรายงาน นอกจากนี้CHECKTABLEใช้เวลา 45 นาทีสำหรับตารางนี้แม้ว่า CI ของมันจะมีขนาด 30 MB และมีแถวประมาณ 30k ข้อมูลทั้งหมดในตารางนั้นเป็นgeographyข้อมูลจุด …

3
ชุดข้อมูลเชิงพื้นที่ขนาดใหญ่ (> 22 ล้านล้านรายการ) พร้อมประสิทธิภาพการสืบค้นอย่างรวดเร็ว (<1s)
ฉันอยู่ในกระบวนการออกแบบระบบใหม่สำหรับชุดข้อมูลเชิงพื้นที่ขนาดใหญ่ที่ต้องการประสิทธิภาพการสืบค้นอย่างรวดเร็ว ดังนั้นฉันต้องการดูว่าใครคิดว่าเป็นไปได้หรือมีประสบการณ์ / คำแนะนำเกี่ยวกับ DBMSs ที่เหมาะสมโครงสร้างข้อมูลหรือวิธีการทางเลือกเพื่อให้ได้ประสิทธิภาพตามที่ต้องการในสถานการณ์ต่อไปนี้: ข้อมูลจะถูกผลิตอย่างต่อเนื่องจากข้อมูลเรดาร์ดาวเทียมที่ผ่านการประมวลผลซึ่งจะครอบคลุมทั่วโลก จากความละเอียดของดาวเทียมและพื้นที่ครอบคลุมของโลกฉันประเมินชุดข้อมูลทั้งหมดเพื่อสร้างมูลค่าที่ 75 พันล้านตำแหน่งโดยสิ้นเชิงในโลก ตลอดช่วงชีวิตของดาวเทียมดวงเดียวเอาต์พุตจะสร้างค่าได้สูงสุด 300 ค่าในแต่ละตำแหน่งเหล่านี้ (ดังนั้นชุดข้อมูลทั้งหมดที่มีค่า&gt; 22 ล้านล้านค่า) นี่เป็นดาวเทียมหนึ่งดวงและมีวงโคจรอยู่หนึ่งวินาทีและอีกสองวางแผนในไม่กี่ปีใหม่ ดังนั้นจะมีข้อมูลจำนวนมาก! รายการข้อมูลเดียวนั้นง่ายมากและจะประกอบไปด้วย (ลองจิจูด, ค่าละติจูด, ค่า) แต่เนื่องจากจำนวนรายการที่ฉันประเมินดาวเทียมหนึ่งดวงเพื่อผลิตสูงสุด 100TB ข้อมูลที่เป็นลายลักษณ์อักษรไม่ควรต้องมีการอัพเดทเนื่องจากจะเพิ่มขึ้นเมื่อมีการดำเนินการจัดหาดาวเทียมใหม่ ประสิทธิภาพการเขียนไม่สำคัญ แต่ประสิทธิภาพการอ่านมีความสำคัญ เป้าหมายของโครงการนี้คือเพื่อให้สามารถมองเห็นข้อมูลผ่านอินเทอร์เฟซแบบง่ายเช่นเลเยอร์เหนือแผนที่ google ซึ่งแต่ละจุดมีค่าสีตามค่าเฉลี่ยการไล่ระดับสีหรือฟังก์ชันบางช่วงเวลา (สาธิตที่ส่วนท้ายของโพสต์) จากข้อกำหนดเหล่านี้ฐานข้อมูลจะต้องสามารถปรับขนาดได้และเรามีแนวโน้มที่จะมองหาโซลูชั่นระบบคลาวด์ ระบบจะต้องสามารถจัดการกับข้อความค้นหาเชิงพื้นที่เช่น "points near (lat, lon)" และ "points within (box)" และมีประสิทธิภาพการอ่าน &lt;1s สำหรับการหาจุดเดียวและรูปหลายเหลี่ยมที่มีถึง 50,000 คะแนน (ถึง 200,000 คะแนนน่าจะดีกว่า) จนถึงตอนนี้ฉันมีชุดข้อมูลทดสอบ …

3
อะไรคือความแตกต่างระหว่าง POINT (X, Y) และ GeomFromText (“ POINT (XY)”)
ฉันต้องการจัดเก็บตำแหน่งทางเรขาคณิตบางอย่างในฐานข้อมูล MySQL ของฉัน สำหรับสิ่งนี้ฉันใช้ประเภทข้อมูล POINT เกือบทุกที่ฉันอ่านว่าGeomFromTextควรใช้ฟังก์ชั่นเพื่อแทรกข้อมูลลงในตาราง อย่างไรก็ตามฉันพบว่าPOINT(X,Y)ยังใช้งานได้ ฉันไม่พบคำอธิบายว่าทำไมควรจะนำมาใช้แทนGeomFromTextPOINT ตัวอย่างเช่นฉันมีความสัมพันธ์แบบง่าย ๆ ดังต่อไปนี้: CREATE TABLE Site ( SiteID BIGINT UNSIGNED, Position POINT ); และฉันสามารถแทรกค่าโดยใช้สองตัวแปรต่อไปนี้: INSERT INTO Site ( 1, GeomFromText( 'POINT(48.19976 16.45572)' ) ); INSERT INTO Site ( 2, POINT(48.19976, 16.45572) ); เมื่อฉันดูตาราง ( SELECT * FROM Site) ฉันเห็นหยดเลขฐานสองเดียวกันสำหรับตำแหน่งและเมื่อฉันดูพิกัด ( SELECT *, …

3
PostgreSQL เทียบกับ MySQL: การเปรียบเทียบคุณสมบัติเชิงพื้นที่
เรากำลังอยู่ระหว่างการสร้างเว็บแอปพลิเคชันที่มีองค์ประกอบข้อมูลเชิงพื้นที่ ในการเริ่มต้นการเปรียบเทียบข้อมูลเชิงพื้นที่ของเราจะใช้จุดที่กำหนดและกลับมาจับคู่รูปหลายเหลี่ยมเชิงพื้นที่ที่ทับซ้อนกัน ดังที่กล่าวไปแล้วฐานข้อมูลของเรามีส่วนประกอบอื่น ๆ มากมายซึ่งรวมถึงสิ่งทั่วไปที่คุณจะพบในฐานข้อมูลเชิงสัมพันธ์ทั่วไปของคุณ เราอยู่ในจุดที่โครงการของเราต้องเลือกโซลูชันฐานข้อมูลที่จะใช้ สมาชิกโครงการทุกคนมีความคุ้นเคยกับการใช้และการบริหารจัดการของ MySQL มากขึ้น แต่งานวิจัยทั้งหมดชี้ให้เห็นว่า PostgreSQL เป็นทางออกที่ดีกว่าโดยเฉพาะอย่างยิ่งในเรื่องข้อมูลเชิงพื้นที่โดยใช้ postGIS เราคาดหวัง (ความหวัง) แอปพลิเคชันของเราจะได้สัมผัสกับการกระทำมากมายกับผู้ใช้จำนวนมาก ใครบ้างที่มีประสบการณ์การใช้ MySQL เป็น RDBMS ของพวกเขาที่มีองค์ประกอบข้อมูลเชิงพื้นที่มีคำแนะนำ / ประสบการณ์ระยะยาวหรือไม่? มีข้อเสียของการใช้ PostGIS ยกเว้นความคุ้นเคยหรือไม่?

2
PostGIS กับ SQL Server สำหรับข้อมูล GIS
ดังนั้นเมื่อเร็ว ๆ นี้ฉันเริ่มที่ บริษัท ใหม่และมีผู้ใช้ ArcGIS จำนวนมากที่ดูเหมือนจะกระตือรือร้นที่จะก้าวไปข้างหน้าด้วยอินสแตนซ์ PostGIS เพื่อให้บริการข้อมูลแก่ลูกค้าของเรา ในขณะที่ฉันไม่มีปัญหากับสิ่งนี้เราเป็นเซิร์ฟเวอร์ SQL 95% และร้านออราเคิล 5% GIS ภายในของเราในปัจจุบันหมดลง SQL Server และฉันยังไม่ได้ยินคำร้องเรียนใด ๆ ฉันรู้ว่า SQL Server มีความสามารถเชิงพื้นที่ / รูปทรงเรขาคณิตที่ปรับปรุงใหม่จำนวนมากในปี 2012 แต่มีคุณสมบัตินักฆ่าใน PostGIS ที่คุ้มค่าที่จะเจาะเข้าสู่แพลตฟอร์มใหม่ใช่หรือไม่ ฉันพยายามค้นคว้าแล้ว แต่ไม่สามารถค้นพบสิ่งใดในเชิงลึกอย่างแท้จริงหรือไม่ได้มีอคติอย่างสมบูรณ์ ฉันต้องการให้เครื่องมือที่ดีที่สุดแก่พวกเขาในการทำงานให้เสร็จ แต่ต้องชั่งน้ำหนักความจริงที่ว่าฉันจะเรียนรู้ Postgres / GIS ตั้งแต่เริ่มต้นและนั่นเป็นการเดินทางทั้งในและของตัวเอง

2
ทางเลือกในการ MakeValid () สำหรับข้อมูลเชิงพื้นที่ใน SQL Server 2016
ฉันมีตารางLINESTRINGข้อมูลทางภูมิศาสตร์จำนวนมากที่ฉันย้ายจาก Oracle ไปยัง SQL Server มีการประเมินจำนวนหนึ่งที่ดำเนินการกับข้อมูลนี้ใน Oracle และพวกเขาจะต้องดำเนินการกับข้อมูลใน SQL Server ด้วย ปัญหา: SQL Server มีข้อกำหนดที่เข้มงวดยิ่งขึ้นสำหรับการใช้ที่ถูกต้องLINESTRINGกว่า Oracle; "อินสแตนซ์ LineString ไม่สามารถทับซ้อนกันในช่วงเวลาสองจุดหรือมากกว่าติดต่อกัน" มันก็เกิดขึ้นที่เปอร์เซ็นต์ของเราLINESTRINGไม่เป็นไปตามเกณฑ์นั้นซึ่งหมายความว่าฟังก์ชั่นที่เราต้องประเมินข้อมูลล้มเหลว ฉันต้องการปรับข้อมูลเพื่อให้สามารถตรวจสอบความถูกต้องได้สำเร็จใน SQL Server ตัวอย่างเช่น: ตรวจสอบง่ายมากLINESTRINGที่กลับมาที่ตัวเอง: select geography::STGeomFromText( 'LINESTRING (0 0 1, 0 1 2, 0 -1 3)',4326).IsValidDetailed() 24413: Not valid because of two overlapping edges in curve (1). การดำเนินการกับMakeValidฟังก์ชัน: select …

1
วิธีเพิ่มประสิทธิภาพของแบบสอบถามเพื่อให้ค้นหาในดัชนีหนึ่งก่อนจากนั้นจึงสร้างดัชนีอื่นหลังจากนั้น
ฉันมีการวัดโลกสองชุดจากข้อมูลดาวเทียมแต่ละชุดมีเขตเวลา (mjd สำหรับค่าจูเลียนเฉลี่ย) และตำแหน่งทางภูมิศาสตร์ (GeoPoint, spacial) และฉันกำลังมองหาความบังเอิญระหว่างสองชุดดังกล่าวซึ่งเวลาของพวกเขาตรงกับเกณฑ์ของ 3 ชั่วโมง (หรือ .125 วัน) และระยะทางของพวกเขาภายใน 200 กม. ของกันและกัน ฉันสร้างดัชนีสำหรับทั้งฟิลด์ mjd บนทั้งตารางและตารางเชิงพื้นที่ เมื่อฉันเพิ่งเข้าร่วมในข้อ จำกัด เวลาฐานข้อมูลจะคำนวณการแข่งขัน 100,000 ครั้งใน 8 วินาทีและคำนวณระยะทางสำหรับการแข่งขันทั้งหมด 100,000 ครั้งในเวลานั้น แบบสอบถามมีลักษณะดังนี้: select top 100000 h.Time, m.Time, h.GeoPoint.STDistance(m.GeoPoint)/1000.0 from L2V5.dbo.header h join L2.dbo.MLS_Header m on h.mjd between m.mjd-.125 and m.mjd+.125 option( table hint …

3
การปรับปรุงประสิทธิภาพของ STIntersects
ตารางT_PINมี 300,000 พินและT_POLYGONมี 36,000 รูปหลายเหลี่ยม T_PINมีดัชนีนี้: CREATE SPATIAL INDEX [T_PIN_COORD] ON [dbo].[T_PIN] ( [Coord] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), CELLS_PER_OBJECT = 128, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = …

2
MySQL จัดเก็บประเภทข้อมูลจุดเป็น LAT LNG หรือ LNG LAT หรือไม่
ฉันเคยเห็นรูปแบบสถานที่เป็นละติจูดตามด้วยลองจิจูด แต่ใช้ห้องสมุดฉันเชื่อว่าฉันเข้าใจ MySQL เพื่อเก็บไว้เป็นPOINT(LNG LAT)ลำดับกลับกัน ห้องสมุดของฉันผิดหรือเป็นรูปแบบจริงหรือไม่ ฉันไม่พบรายละเอียดนี้ในเอกสาร MySQL
9 mysql  spatial 

4
ปัญหาในการรับรหัสไปรษณีย์ในรัศมีผ่าน MySQL
ฉันมีตารางรหัสไปรษณีย์ซึ่งมี lat lat ตรงกลาง lng สำหรับรหัสไปรษณีย์แต่ละอัน ฉันใช้มันเพื่อรับรายการรหัสไปรษณีย์ภายในรัศมีไมล์ที่กำหนดจากจุดใด ๆ มันเกิดขึ้นกับฉันว่าเพียงเพราะจุดศูนย์กลางของซิปไม่ได้อยู่ในรัศมีที่กำหนดไม่ได้หมายความว่าซิปนั้นไม่ได้อยู่ในรัศมี ฉันใช้ทักษะศิลปะขั้นสูงขั้นสูงของฉันเพื่อแสดงจุดที่นี่ Blobs Stripy สีเขียวแสดงรหัสไปรษณีย์ A, B และ C รอยเปื้อนสีแดงเป็นศูนย์กลางทางภูมิศาสตร์สำหรับรหัสไปรษณีย์แต่ละอัน จุดสีแดงม่วงคือตำแหน่งเป้าหมายและ .. วงกลมสีน้ำเงินที่เป็นก้อนนั้นมีรัศมี 1 ไมล์จากตำแหน่งเป้าหมาย หากฉันเรียกใช้แบบสอบถามสำหรับรหัสไปรษณีย์ทั้งหมดที่อยู่ในรัศมี 1 ไมล์จากรอยเปื้อนสีชมพูรหัสไปรษณีย์ B และ C เท่านั้นที่จะถูกส่งคืนเนื่องจากจุดศูนย์กลางสำหรับรหัสไปรษณีย์ A ไม่ได้อยู่ในรัศมีหนึ่งไมล์แม้ว่ารอยเปื้อนสีชมพูจะเกิดขึ้นเอง ชัดเจนในรหัสไปรษณีย์ A. SELECT *, p.distance_unit * DEGREES(ACOS(COS(RADIANS(p.latpoint)) * COS(RADIANS(z.y)) * COS(RADIANS(p.longpoint) - RADIANS(z.x)) + SIN(RADIANS(p.latpoint)) * SIN(RADIANS(z.y)))) AS …

3
Yelp คำนวณระยะทางในฐานข้อมูลได้อย่างมีประสิทธิภาพได้อย่างไร
ตัวอย่างเช่นฉันมีตาราง: Business(BusinessID, Lattitude, Longitude) ทั้งหมดได้รับการจัดทำดัชนีแน่นอน นอกจากนี้ยังมี 1 ล้านบันทึก สมมติว่าฉันต้องการค้นหาธุรกิจที่ใกล้เคียงกับ 106,5 ตัวอย่างเช่นฉันจะทำอย่างไร ถ้าฉันทำ SELECT * FROM Business WHERE (Some formula to compute distance here) &lt; 2000 ตัวอย่างเช่นหรือถ้าฉันทำ SELECT * FROM Business TOP 20 ในทางทฤษฎีคอมพิวเตอร์จะต้องคำนวณระยะทางสำหรับเจ้าหน้าที่ทุกคนในขณะที่ในทางปฏิบัติเฉพาะผู้ที่มี lattitude และลองจิจูดในช่วงที่ควรจะคำนวณ ดังนั้นฉันจะทำสิ่งที่ฉันต้องการใน PhP หรือ SQL ได้อย่างไร ฉันรู้สึกซาบซึ้งกับคำตอบที่ได้รับ ฉันกำลังใช้ mysql และพวกเขาไม่มีอะไรมีประสิทธิภาพมากกว่าโซลูชันที่ชัดเจน MySQL อวกาศไม่มีฟังก์ชันคำนวณระยะทางเช่นกัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.