क्या कांग्रेस के जिलों के निर्धारण के लिए एपीआई है? [बन्द है]


11

मैं अपने उपयोगकर्ता द्वारा प्रदान किए जा रहे पते के आधार पर कांग्रेस के जिले का निर्धारण करना चाहता हूं। यह उपयोगकर्ता को इसे स्वयं देखने के लिए होने से बचाएगा।

क्या इस प्रकार का एपीआई मौजूद है?

ध्यान दें

एक को खोजने के मेरे प्रयासों के माध्यम से, मैं केवल इन पर आया हूं:

  • http://www.govtrack.us/developers/api
    (निश्चित नहीं है कि पता या ज़िप कोड कैसे जमा करें)

    एपीआई में निम्नलिखित संसाधन उपलब्ध हैं

    ... 1973 (93 वें कांग्रेस) के बाद से अमेरिकी कांग्रेस में बिल और संकल्प।

    ... ए (बिल, व्यक्ति) जोड़े में शामिल होने और वापस लेने की तारीखों के साथ कोस्पॉन्सरशिप का संकेत देने वाली जोड़ी।

    ... राष्ट्र की स्थापना के बाद से कांग्रेस और अमेरिकी राष्ट्रपतियों के सदस्य।

    ... कांग्रेस और अमेरिकी राष्ट्रपतियों के सदस्यों द्वारा कार्यालय में रखी गई शर्तें। प्रत्येक पद एक चुनाव के साथ मेल खाता है, जिसका अर्थ है कि सदन में प्रत्येक पद दो वर्ष (एक 'कांग्रेस'), चार वर्ष राष्ट्रपति के रूप में और छह वर्ष (तीन 'कांग्रेस') शामिल हैं।

    ... 1789 के बाद से अमेरिकी कांग्रेस में रोल वोट। लोगों को वोट कैसे दिया जाता है यह Vote_voter API के माध्यम से जाना जाता है।

    ... कैसे लोगों ने 1789 से अमेरिकी कांग्रेस में रोल कॉल पर वोट दिया। वोट एपीआई देखें। किसी विशेष वोट के परिणाम प्राप्त करने के लिए वोट फ़ील्ड पर फ़िल्टर करें ...

  • http://www.opencongress.org/api
    (कांग्रेस की जानकारी पाने का एक तरीका लगता है, लेकिन जिले नहीं)

    यह एपीआई प्रोग्रामर को OpenCongress के सभी डेटा तक संरचित पहुंच प्रदान करता है, जो आधिकारिक बिल की जानकारी से लेकर समाचार और ब्लॉग कवरेज से लेकर बिलों तक उपयोगकर्ता द्वारा जनरेट किए गए वोटों तक सब कुछ ...

    यह API XML को वापस करने के लिए डिफॉल्ट करता है। सभी प्रश्न JSON भी लौटा सकते हैं ...

  • https://groups.google.com/forum/?fromgroups=# -topic/opendems-discuss/CeKyi_aANaE
    (समान प्रश्न, कोई संकल्प नहीं)

    मैं ओपन डेम्स देख रहा हूं, और यह देख रहा हूं कि इस बिंदु पर क्या उजागर हुआ है और क्या नहीं। मैं डेमोक्रेट अब्रॉड के साथ काम करता हूं, और अपनी साइटों के लिए लैब से सामान का उपयोग करने में दिलचस्पी रखता हूं।

    मैंने जल्दी से Precinct API पर ध्यान दिया, जो कि मेरी आवश्यकता से अधिक और कम दोनों है। एक आदर्श संसाधन किसी भी तरीके से सीडी में अनुवाद करने का बहुत कम से कम (राज्य जिला डेटा प्राप्त करना अच्छा होगा), क्योंकि इससे डीए की सदस्यता के लिए पिछले महीने की NY26 दौड़ जैसी दौड़ में अंतर करना आसान हो जाएगा। ।

अपडेट करें

मैं सरकार की वेबसाइट के लिए स्रोत देख रहा हूं और 'doGeoCode' फ़ंक्शन उपयोगी हो सकता है।

स्रोत-देखें: http: //www.govtrack.us/congress/members

अगर किसी के पास कोई सुझाव नहीं है, तो मैं कोशिश करूंगा कि वे जो कर रहे हैं, उससे दूर जाऊं।


1
मैंने अपने प्रश्न को कुछ स्थानों के साथ अद्यतन किया है जिन्हें मैं देख रहा हूं।
ardavis

इसका मतलब यह हो सकता है कि इसे स्टैकऑवरफ्लो में ले जाएं, या वहां इसे फिर से शुरू करें, और इसे यहां लिंक करें, क्योंकि यह एक वैध, महत्वपूर्ण और उपयोगी प्रश्न है।
क्रिस मोसचिनी

जवाबों:


7

मैंने इसका उपयोग नहीं किया है, लेकिन एक त्वरित खोज ने मुझे सनलाइट लैब्स से कांग्रेस एपीआई में लाया । उनके जिलों की जाँच करें। TheDist जिले FromZip विधि - ऐसा लगता है कि आप क्या देख रहे हैं। आप बेहतर (अधिक सटीक) परिणाम प्राप्त कर सकते हैं और अपने आप पते को जियोकोडिंग करके जिलों का उपयोग कर सकते हैं। DgetDistrictFromLatLong - मुझे लगता है कि एक दिया हुआ ज़िप कोड जिले की सीमाओं को पार कर सकता है।


1
शुक्रिया @ कालेब। जब मैं खोज कर रहा था तो मुझे यह पता नहीं चला, कि मुझे वही लग रहा है, जिसकी मुझे तलाश है। मैं इसकी सराहना करता हूं।
17

अद्यतन: सनलाइट एपीआई कुंजी पृष्ठ अब काम नहीं करता है।
सेठ कॉनवेल

4

Google Civics API सबसे अच्छा समाधान है। एक एकल एपीआई हिट से आपको निर्वाचित अधिकारी और जिले दोनों मिलते हैं।

आप GPS कोर्ड्स (lat / lng) द्वारा जिले प्राप्त कर सकते हैं जैसे:

public async Task<GoogleCivicsResult> FetchAndParseUSDistrictAsync(
    decimal lat, decimal lng, string address = null)
{
    string googleApiKey = App.GoogleApiKey;
    string reqAddr = Uri.EscapeDataString(address ?? lat + "," + lng);
    string url = "https://www.googleapis.com/civicinfo/v2/representatives?alt=json&key={0}&address={1}";
    url = String.Format(url, googleApiKey, reqAddr);

    var req = new HttpWebRequestAsync(url);
    var data = await req.GetStringAsync();

    var result = JsonConvert.DeserializeObject<GoogleCivicsResult>(data);

    return result;
}

public class GoogleCivicsResult
{
    public Address normalizedInput { get; set; }

    public Dictionary<string, Division> divisions { get; set; }

    public Office[] offices { get; set; }

    public Official[] officials { get; set; }
}

public class Address
{
    public string line1 { get; set; }
    public string line2 { get; set; }
    public string city { get; set; }
    public string state { get; set; }
    public string zip { get; set; }
}

public class Division
{
    public string name { get; set; }

    public int[] officeIndices { get; set; }

    public Office[] offices { get; set; }
}

public class Office
{
    // President of the United States
    // United States Senate
    // United States House of Representatives FL-06
    // Governor
    // Lieutenant Governor
    // Attorney General
    // Sheriff
    // County Judge
    // Council Chair
    public string name { get; set; }

    // ocd-division/country:us/state:fl/cd:6
    // ocd-division/country:us/state:fl
    // ocd-division/country:us/state:fl/county:volusia
    public string divisionId { get; set; }

    // administrativeArea1
    public string[] levels { get; set; }

    // legislatorUpperBody
    // legislatorLowerBody
    // headOfGovernment
    // deputyHeadOfGovernment
    public string[] roles { get; set; }

    public int[] officialIndices { get; set; }
}

public class Official
{
    public string name { get; set; }
    public Address[] address { get; set; }
    public string party { get; set; }
    public string[] phones { get; set; }
    public string[] urls { get; set; }
    public string photoUrl { get; set; }
    public Social[] channels { get; set; }
    public string[] emails { get; set; }
}

public class Social
{
    public string type { get; set; }
    public string id { get; set; }
}

https://developers.google.com/civic-information/docs/v2/representatives/representativeInfoByAddress

आप OpenStates का उपयोग करके राज्य-स्तरीय जानकारी के लिए समान प्राप्त कर सकते हैं :

"http://openstates.org/api/v1/legislators/geo/?apikey={0}&lat={1}&long={2}";

Google Civics API के बारे में Addenda बार-बार नीचे जा रहा है

Google Civics API इस बात पर अस्पष्ट है कि क्या यह lat / lng का समर्थन करता है, और हर कुछ महीनों में, यह सिर्फ एक महीने के लिए lat / lng का समर्थन करना बंद कर देगा, जब तक कि कोई इसे रिपोर्ट नहीं करता और Google विशेष रूप से, एक कर्मचारी शायद उनके स्वयंसेवक समय नोटिस ("चेलन") में इस पर काम कर रहे हैं और इसे ठीक कर रहे हैं:

https://groups.google.com/d/msg/google-civicinfo-api/0td48h7JxYA/Zhij3yQiCgAJ

यदि आपकी सेवा को उम्मीद है कि यह Civics API डेटा को क्रैश करने वाला है, और यदि इसे Civics API डेटा उपयोगी होना चाहिए, तो यह क्रैश नहीं हो सकता है, लेकिन यह एक महीने के लिए बेकार हो जाएगा। सबसे हालिया विफलता 2018 में अधिकांश राज्यों के लिए संपूर्ण मतदान की अवधि थी, इसलिए, यह काफी डाउनटाइम है।

आप स्पष्ट रूप से रिवर्स जियोकोडिंग द्वारा रक्षा खेल सकते हैं:

if (!(navigator && navigator.geolocation))
    return geoFail();

navigator.geolocation.getCurrentPosition(function (position) {
    var coords = position.coords;
    var lat = coords.latitude;
    var lng = coords.longitude;

    if (!lat || !lng)
        return geoFail();

    var geocoder = new google.maps.Geocoder;
    geocoder.geocode({ 'location': { lat: lat, lng: lng } },
            function (r, status) {
        if (status !== 'OK' || !r || !r.length) {
            loadReps(lat, lng);
            return;
        }

        var address = r[0].formatted_address;
        $('#address').val(address);
        loadReps(lat, lng, address);
    });
}, geoFail);

तो यहाँ, हम सामान्य एचटीएमएल 5 के माध्यम से उपयोगकर्ता के स्थान के लिए पूछते हैं, और यदि वे कहते हैं कि नहीं / ब्लॉक हम उन्हें "अपना स्थान प्राप्त नहीं कर सकते" संदेश (जियोफाइल के साथ)। फिर हमें lat / lng मिल गया है, लेकिन, Google Civics API अनियमित है, इसलिए हम पते के लिए Google से स्पष्ट रूप से पूछेंगे। यह r [0] के रूप में वापस आता है ।formatted_address, जो कुछ जवाबों में Google को सलाह देता है कि आप उपयोगकर्ता को उस स्थान की पुष्टि करने के लिए दिखाएं जो वे देख रहे हैं। तो हम पता टेक्स्ट बॉक्स में डालते हैं और इसे बंद भेजते हैं loadReps(lat, lng, address)

ध्यान दें कि यह संभव है कि जियोकोड कॉल विफल हो सकती है (एक परतदार इंटरनेट कनेक्शन के कारण सहित), लेकिन, कभी-कभी Google सिविक एपीआई पूरी तरह से चालू होता है, इसलिए, इस परिदृश्य में उपयोगकर्ता को परिणाम से इनकार करने की कोई आवश्यकता नहीं है; इस मामले में मैंने जो बैकएंड लिखा है, वह lat / lng और वैकल्पिक पते को स्वीकार कर सकता है, और लापता पते को सहन कर सकता है। तब यह Google सिविकिक्स एपीआई से बात करने की कोशिश करता है, और अगर इसे कुछ नहीं मिलता है, तो इसे जीवित रहने की जरूरत है और उपयोगकर्ता को बताएं कि सिविक एपीआई टूट गया है, क्षमा करें।

ऐतिहासिक उत्तर

सनलाइट फाउंडेशन * से कांग्रेस एपीआई केवल संघीय है - कोई राज्य-स्तर नहीं, अगर यह आपके लिए मायने रखता है। और [सनलाइट फाउंडेशन बंद हो रहा है, क्योंकि वे सरकार के प्रयासों की नकल नहीं करना चाहते हैं।

GovTrack का API * अधिक पूर्ण है। वे /roleआपके प्रश्न के सबसे करीब हैं:

https://www.govtrack.us/developers/api#endpoint_role

यह आपको सभी वर्तमान सीनेटरों और हाउस सदस्यों को बताता है, और जब उनका अगला चुनाव होता है। तो आपके पास एक फ़िल्टरिंग बोझ होगा।

राज्य-स्तरीय सामान के लिए आप OpenStates.org चाहते हैं, जैसे:

http://openstates.org/api/v1/legislators/geo/?apikey= {0} & lat = {1} & long = {2}

https://openstates.org/

* बुरी खबर, हर समय सब कुछ बंद हो रहा है। सनलाइट फाउंडेशन ने गोविट्रैक के काम की नकल करने से बचने के लिए उनके एपीआई को बंद कर दिया। प्रोप्रिबोसा के काम की नकल करने से बचने के लिए गोव्रीत अब अपना काम बंद कर रहे हैं । लेकिन Propublica आपको स्थान से बिल्कुल जिला नहीं देता है:

https://projects.propublica.org/api-docs/congress-api/

तो प्रतीक्षा करें कि आप कह सकते हैं, इसका कोई मतलब नहीं है, क्योंकि प्रोपब्लिसिया की प्रतिनिधि साइट , जिसे NYTimes के शटडाउन प्रतिनिधि परियोजना से स्थानांतरित किया गया है, आपको एक पते को मैप करने और जीपीएस कोर्ड्स से जिला प्राप्त करने देता है। और वे उस पृष्ठ से अपने एपीआई से लिंक करते हैं। अच्छी तरह से आपको बेवकूफ बनाया गया है, क्यूज वह पेज उनके एपीआई का उपयोग नहीं करता है। वास्तव में, यह Sunlight Foundation के डिस्ट्रिक्ट फाइंडिंग API का उपयोग करता है।

क्या झंझट है।


2
ProPublica के एक प्रतिनिधि ने सुझाव दिया कि मैं Google की नागरिक सूचना API ( Developers.google.com/civic-information/docs/v2/repretatives/… )
kmoser

1
@kmoser धन्यवाद - मुझे एक ही प्रतिक्रिया मिली। अद्यतन उत्तर।
क्रिस मोसचिनी

2

मुझे एहसास है कि यह सवाल पुराना है, लेकिन मुझे लगा कि मैं अपने दो सेंट में किसी को भी फेंक दूंगा जो अभी भी दिख रहा है।

सबसे पहले, कुछ पृष्ठभूमि जानकारी। कांग्रेसी जिले बेहद विशिष्ट हैं - केवल एक सड़क के नीचे। मैं और मेरे पड़ोसी सड़क पर अलग-अलग कांग्रेसी जिलों में हो सकते हैं। यही कारण है कि यह सुनिश्चित करने के लिए एक अच्छा ज़िप + 4 कोड प्राप्त करना महत्वपूर्ण है कि आप सही जिले में पता दे रहे हैं। एक प्रणाली (जैसे स्मार्टयस्ट्रीट या मेलिसा डेटा या क्यूएएस, आदि) जो पता सत्यापन करता है, आपको यह सुनिश्चित करने के लिए एक विश्वसनीय ज़िप + 4 देगा कि जिला सही है।

SmartyStreets में उनकी LiveAddress API है , जो 40 से अधिक अन्य डेटा पॉइंट (जियोकोड, आवासीय बनाम वाणिज्यिक, आदि) के साथ-साथ कांग्रेस के डेटा को लौटाती है।


IL-04 को देखते हुए मुझे भी यकीन नहीं है कि ZIP + 4 को उचित जिला मिलेगा। (gist.g at a gist at gist.github.com/anonymous/f2e46f17275f6db68db को github.com/benbalter/congressional-dist जिले / blob-gh-pages / IL / … से कॉपी किया गया है, क्योंकि वह इस समय प्रस्तुत नहीं कर रहा है)।

... हालाँकि, यह कहता है कि zip + 4 आपको एक इमारत में ले जाना चाहिए और उसमें सड़क के किस तरफ की जानकारी शामिल है। तो हो सकता है, लेकिन फिर विचार करें कि किसी जिले में नक्शे में ज़िप + 4 का सेट उस जिले की इमारतों की संख्या होगी, जो अनिच्छुक हो सकती है।

0

मेलिसा डेटा पता सत्यापन के लिए उपकरण बनाता है जिसमें राजनीतिक जिलों की जानकारी शामिल होती है। मुझे नहीं पता कि उनके पास सार्वजनिक एपी है या नहीं; ऊपर दिया गया लिंक आपको एक पते के पृष्ठ पर ले जाएगा। वे सीमित संख्या में मुफ्त लुक अप की पेशकश करते हैं जिन्हें सब्सक्रिप्शन के साथ बढ़ाया जा सकता है । कृपया इसे उत्पादन एप्लिकेशन में डालने से पहले उपयोग की शर्तों को देखें।

जबकि उनका डेटा मासिक रूप से अपडेट किया जाता है, मैंने देखा है कि उनमें से कुछ हाल के पुनर्वितरण को प्रतिबिंबित नहीं करते हैं।

कई राज्यों के पास यह जानकारी उपलब्ध है, लेकिन मुझे संदेह है कि उनके कार्यान्वयन में कोई निरंतरता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.