पर SQLGeography बहुभुज को सुधारें मैं एक वेब सेवा बना रहा हूं जो JSON प्रारूप में भौगोलिक सीमा डेटा प्रदान करता है।JSON
भौगोलिक डेटा किसी तालिका में भूगोल प्रकार का उपयोग कर SQL सर्वर 2008 R2 डेटाबेस में संग्रहीत किया जाता है। मैं पॉलीगॉन डेटा को पाठ के रूप में वापस करने के लिए [ColumnName].ToString()
विधि का उपयोग करता हूं।
उदाहरण आउटपुट:
POLYGON ((-6.1646509904325884 56.435153006374627, ... -6.1606079906751 56.4338050060666))
MULTIPOLYGON (((-6.1646509904325884 56.435153006374627 0 0, ... -6.1606079906751 56.4338050060666 0 0)))
ज्योग्राफिक परिभाषाओं या तो अक्षांश/देशांतर जोड़े एक बहुभुज को परिभाषित करने की एक सरणी या कई परिभाषाएं, एक सरणी या बहुभुज (multipolygon) के मामले में के रूप ले सकता है।
मेरे पास निम्न रेगेक्स है जो आउटपुट के आधार पर बहु-आयामी सरणी में मौजूद JSON ऑब्जेक्ट्स में आउटपुट को परिवर्तित करता है।
Regex latlngMatch = new Regex(@"(-?[0-9]{1}\.\d*)\s(\d{2}.\d*)(?:\s0\s0,?)?", RegexOptions.Compiled);
private string ConvertPolysToJson(string polysIn)
{
return this.latlngMatch.Replace(polysIn.Remove(0, polysIn.IndexOf("(")) // remove POLYGON or MULTIPOLYGON
.Replace("(", "[") // convert to JSON array syntax
.Replace(")", "]"), // same as above
"{lng:$1,lat:$2},"); // reformat lat/lng pairs to JSON objects
}
यह वास्तव में बहुत अच्छी तरह से काम कर रहा है और एक ऑपरेशन कॉल के जवाब में मक्खी पर JSON करने के लिए डीबी उत्पादन धर्मान्तरित है।
हालांकि मैं कोई रेगेक्स मास्टर नहीं हूं और String.Replace()
पर कॉल भी मेरे लिए अक्षम नहीं हैं।
क्या किसी के पास इसके प्रदर्शन के बारे में कोई सुझाव/टिप्पणियां हैं?
नोट: भौगोलिक परिभाषा केवल जीबी के लिए है, जो रेगेक्स में दिखाई देती है। – James