2009-11-09 13 views
6

शीर्षक के रूप में मुझे समन्वय की एक जोड़ी के आधार पर एक समय क्षेत्र (या शायद केवल यूटीसी ऑफ़सेट) ढूंढना होगा। मैं विभिन्न समाधानों की तलाश कर रहा हूं, और वहां कुछ वेब सेवाएं हैं लेकिन मुझे ऑफ़लाइन एप्लिकेशन तक पहुंचने में सक्षम होना चाहिए। चूंकि टाइमज़ोन पूरी तरह से देशांतर पर आधारित नहीं है, यह आसान नहीं लगता है ...कोऑर्डिनेट द्वारा टाइमज़ोन

हालांकि मैं एक ईएसआरआई आकारफाइल पूछताछ के बारे में हालांकि मुझे दुनिया और उनके समय क्षेत्र में सभी देशों को मिला है, लेकिन ऐसा लगता है जटिल। यदि यह समाधान होना चाहिए, तो क्या आप इस कार्यक्षमता प्रदान करने वाली किसी भी .NET लाइब्रेरी के बारे में जानते हैं?

+1

यह भी देखें, [यह समुदाय विकी] (http://stackoverflow.com/q/16086962/634824) –

उत्तर

0

तुमने कहा था:

मैं हालांकि किसी ESRI शेपफ़ाइल मैं दुनिया और उनके समय क्षेत्र के सभी देशों से युक्त हो गया गया है की क्वेरी, लेकिन के बारे में यह जटिल की तरह लगता है। यदि यह समाधान होना चाहिए, तो क्या आप इस कार्यक्षमता प्रदान करने वाली किसी भी .NET लाइब्रेरी के बारे में जानते हैं?

हाँ - ठीक है कि exists here

2

tz डेटाबेस देखें। मुझे पता है कि यह समय-समय पर नामों को जोड़ता है (जैसे शहर, देश, ईएसटी, आदि)। लेकिन मेरा मानना ​​है कि कहीं समन्वय के लिए एक विस्तार है।

+0

मैंने tz डेटाबेस को आजमाया है लेकिन ऐसा लगता है कि यह समय क्षेत्र का वास्तविक आकार प्रदान नहीं करता है .. मुझे प्राप्त आकारफाइल http://www.manifold.net/download/freemaps.html से है, भले ही लिंक अब काम नहीं करता है। क्या किसी को निर्देशांक द्वारा एक आकृति फ़ाइल में पहचान (पूछताछ) वस्तुओं के साथ अनुभव है? – Morten

0

समाधान नई स्थानिक डेटाटाइप का उपयोग कर SQL Server 2008 में एक ESRI आकार फ़ाइल निर्यात करना था।

यदि किसी के पास बेहतर समाधान है तो पोस्ट करने के लिए स्वतंत्र महसूस करें!

0

मैंने तालिका को निर्यात करने का प्रयास किया है, लेकिन geometry प्रकारों को टेक्स्ट में निर्यात करना संभव नहीं लगता .. हालांकि यह वैसे भी करना मुश्किल नहीं था .. आपको कुछ वर्षों तक आकार देने वाले आकृतिफाइल को Google पर जाना होगा पहले जो दुनिया और उनके समय क्षेत्र में सभी अनुबंधों को मानचित्रित करता है .. फिर आपको उस प्रोग्राम को कुछ प्रोग्राम का उपयोग कर SQL Server 2008 में निर्यात करने की आवश्यकता है .. मैंने कई गुना (एंटरप्राइज़ संस्करण या ऊपर का उपयोग करना याद रखें) .. फिर मैं डेटा का उपयोग कर क्वेरी करता हूं निम्नलिखित संग्रहीत प्रक्रिया:

USE [MyDb] 
GO 
/****** Object: StoredProcedure [dbo].[GetTimeZone] Script Date: 11/18/2009 21:23:52 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[GetTimeZone] 
    @Latitude float, 
    @Longitude float 
AS 
    /* SET NOCOUNT ON */ 

DECLARE @g geometry 

/* Validation */ 
IF @Latitude > 90 OR @Latitude < -90 OR @Longitude > 180 OR @Longitude < -180 
    RAISERROR('Latitude or longitude out of range', 16, 1) 

IF @Latitude IS NULL OR @Longitude IS NULL 
    RAISERROR('Latitude or longitude cannot be null', 16, 1) 

SET @g = geometry::Point(@Longitude, @Latitude, 4326); 

IF EXISTS(SELECT * From TimeZones WHERE Shape.STContains(@g) = 1) 
    /* Point exists on map, get the info */ 
    SELECT Name, LocalSumme, Offset, AreaI FROM TimeZones WHERE Shape.STContains(@g) = 1 
ELSE 
    /* Point is an international water */ 
    IF(@Longitude >= 0) 
     SELECT NULL AS Name, NULL AS LocalSumme, FLOOR((@Longitude + 7.5)/15) AS Offset, NULL AS AreaI 
    ELSE 
     SELECT NULL AS Name, NULL AS LocalSumme, -FLOOR(([email protected] + 7.5)/15) AS Offset, NULL AS AreaI 

आकारफाइल में कोई समस्या है क्योंकि राष्ट्रीय जल मैप नहीं किया गया है। मैं शायद इस समस्या को हल करने के लिए @ g.STBuffer() का उपयोग कर रहा हूं ..

6

मैंने इसे क्लाइंट एप्लिकेशन के साथ हल किया है। तकनीक दुनिया के रंग-कोडित बेलनाकार मानचित्र बनाने के लिए थी, प्रत्येक बार क्षेत्र में एक अद्वितीय रंग होता है। लैट-लॉन्स को चित्र समन्वय में परिवर्तित कर दिया जाता है और समन्वय का रंग पढ़ा जाता है, फिर उस रंग के समय क्षेत्र को पार-संदर्भित किया जाता है।

वह संक्षिप्त व्याख्या बिल्कुल नहीं है जो मैंने किया लेकिन यह विचार पूरे हो गया। मैं वास्तव में कुछ जोड़े शब्दकोशों को पॉप्युलेट करता हूं और उनसे लुकअप करता हूं। पहली प्रस्तुति ने संसाधन फ़ाइल के 2 एम को पॉप्युलेट करने के लिए लिया (जब मैंने अपना नक्शा संसाधित किया और इसे बाइनरी डेटा में बदल दिया)। सैद्धांतिक अधिकतम त्रुटि (भूमध्य रेखा के पास अक्षांश के लिए) +/- लगभग 15 मील होना चाहिए था। दुर्भाग्य से मेरे शुरुआती मानचित्र की सटीकता +/- 100 मील की तरह अधिक थी।

तो मैं इस परियोजना को फिर से शुरू कर रहा हूं। मैं कई दिनों में क्रंच करने के लिए एक और अधिक सटीक और उच्च-रेज़ नक्शा बना रहा हूं। कुछ और दिन और यह किया जाना चाहिए। संसाधन फ़ाइल लगभग 20 एम होगी जब तक कि मैं केवल "मूर्ख क्षेत्रों" को संसाधनों का चयन नहीं करता और गणितीय रूप से दुनिया के 90% की गणना करता हूं जिसे सीधे गणना की जा सकती है (अधिकांश दुनिया गणित से देशांतर से प्राप्त की जा सकती है)। यकीन नहीं है कि बहुत से लोग इस बात की परवाह करेंगे कि संसाधन फ़ाइल 20 एम थी लेकिन कुछ शायद। किसी भी दर पर, यदि कुछ रूचि दिखाई देती है, तो मैं इसे चलाने के लिए आवश्यक कोड पोस्ट करने की कोशिश करूंगा और संसाधन फ़ाइल सार्वजनिक कोड साइटों में से एक को पोस्ट करूँगा। अगर कोई दिलचस्पी नहीं है, तो मुझे परेशान नहीं होगा।

बस थोड़ा पुन: पुन: पुन: प्रयास करने के लिए, आपके ऐप में आवश्यक कोड केवल कुछ पंक्तियां हैं, लेकिन संसाधन फ़ाइल बड़ी है (w/o इसे छोटा कर रही है, मेरा नया 22 एम चल रहा है)। यह भी तेज़ है (पहला प्रतिपादन 100 एम/सेकंड चला गया)। इसे फ़ाइल लोड की आवश्यकता होती है और इसमें थोड़ा समय लगता है। 2 एम संस्करण में कोई ध्यान देने योग्य देरी नहीं थी लेकिन 22 एम शायद (अभी तक नहीं) हो सकता है।

+1

धन्यवाद, यह निश्चित रूप से दिलचस्प लगता है। अगर आप हमें अपना समाधान साझा कर सकते हैं तो मैं सराहना करता हूं। – Morten

संबंधित मुद्दे