जब प्रदर्शन किसी भी महत्व का है, अच्छी तरह से ज्ञात द्विआधारी प्रसिद्ध पाठ के बजाय इस्तेमाल किया जाना चाहिए:
var newGeography = DbGeography.FromBinary(theGeography.STAsBinary().Value);
का उपयोग कर एक अधिभार नहीं है एक एसआरआईडी, अगर यह महत्वपूर्ण है। 1,000 यथोचित जटिल बहुभुज के साथ अपने साधारण परीक्षण में द्विआधारी आधारित दृष्टिकोण 4 बार की तुलना में तेजी है पाठ आधारित एक:
int coordSys = DbGeography.DefaultCoordinateSystemId; // 4326;
SqlGeography g = SqlGeography.Point(lat, lon, coordSys);
return DbSpatialServices.Default.GeographyFromProviderValue(g);
नहीं serializing:
* Binary-based conversion
Run 1: 1948
Run 2: 1944
Run 3: 1959
Run 4: 1979
Run 5: 1988
Average: 1963.6
* Text-based conversion
Run 1: 8527
Run 2: 8553
Run 3: 8596
Run 4: 8535
Run 5: 8496
Average: 8541.4
स्रोत
2015-03-22 22:31:03
मैं वास्तव में एक और प्रोजेक्ट पर हूं जहां यह फिर से आया, इसलिए धन्यवाद, बस मैं जो खोज रहा था। – radpin
मैंने इसे कुछ बार अनुशंसित देखा है लेकिन .NET में उपयोग किए जाने पर MakeValid विधि SqlGeography प्रकार पर उपलब्ध प्रतीत नहीं होता है। क्या मैं कुछ भूल रहा हूँ? – joelmdev
@ jm2 अगर आपने माइक्रोसॉफ्ट का संदर्भ दिया है। SQL सर्वर। यह आपके लिए उपलब्ध होना चाहिए। –