Chcę ustalić dystrykt kongresowy na podstawie adresu podanego przez mojego użytkownika. Pozwoli to uniknąć konieczności samodzielnego sprawdzenia przez użytkownika.
Czy istnieje tego rodzaju interfejs API?
Uwaga
Próbując go znaleźć, natknąłem się tylko na:
http://www.govtrack.us/developers/api
(nie wiem jednak, jak przesłać adres lub kod pocztowy)W interfejsie API dostępne są następujące zasoby
... Ustawy i rezolucje w Kongresie USA od 1973 r. (93. Kongres).
... Para (rachunek, osoba) wskazująca na cosponsorstwo, z datami przyłączenia i wycofania.
... Członkowie Kongresu i Prezydenci USA od założenia narodu.
... Warunki sprawowane przez członków Kongresu i prezydentów USA. Każda kadencja odpowiada wyborom, co oznacza, że każda kadencja w Izbie obejmuje dwa lata (jeden „Kongres”), jako prezydent cztery lata, a w Senacie sześć lat (trzy „kongresy”).
... Głosuj na apelach w Kongresie USA od 1789 roku. Dostęp do głosowania odbywa się za pośrednictwem interfejsu API Vote_voter.
... Jak ludzie głosowali w głosowaniu imiennym w Kongresie USA od 1789 roku. Zobacz API głosowania. Filtruj w polu głosowania, aby uzyskać wyniki konkretnego głosowania ...
http://www.opencongress.org/api
(wygląda na to, że można znaleźć informacje o kongresie, ale nie dzielnice)Ten interfejs API zapewnia programistom uporządkowany dostęp do wszystkich danych na OpenCongress, od oficjalnych informacji o rachunkach, wiadomości i pokrycia blogów po generowane przez użytkowników głosy na rachunki i wiele więcej ...
Ten interfejs API domyślnie zwraca XML. Wszystkie zapytania mogą również zwracać JSON ...
https://groups.google.com/forum/?fromgroups=#!topic/opendems-discuss/CeKyi_aANaE
(podobne pytanie, brak rozwiązania)Patrzyłem na Open Dems i widziałem, co w tym momencie zostało odkryte, a co nie. Współpracuję z Demokratami za granicą i jestem zainteresowany wykorzystaniem materiałów z laboratorium na swoich stronach.
Szybko przejrzałem interfejs API Precinct, który robi zarówno więcej, jak i mniej niż to, czego potrzebuję. Idealnym zasobem byłby przynajmniej sposób na tłumaczenie adresów na CD (uzyskanie danych z dystryktu stanu również byłoby dobre), ponieważ ułatwiłoby to członkostwu DA zmianę wyścigów, takich jak wyścig NY26 w zeszłym miesiącu. .
Aktualizacja
Patrzę na źródło strony internetowej govtrack.us i funkcja „doGeoCode” może być przydatna.
view-source: http: //www.govtrack.us/congress/members
Jeśli nikt nie ma żadnych sugestii, postaram się odejść od tego, co robią.
Odpowiedzi:
Nie korzystałem z niego, ale szybkie wyszukiwanie przywiodło mnie do Congress API od Sunlight Labs. Sprawdź ich metodę districts.getDistrictsFromZip - wydaje się, że właśnie tego szukasz. Możesz uzyskać lepsze (dokładniejsze) wyniki geokodując adres samodzielnie, a następnie używając districts.getDistrictFromLatLong - Zakładam, że dany kod pocztowy może przekraczać granice dzielnicy.
źródło
Google Civics API to najlepsze rozwiązanie. Jedno trafienie API zapewnia zarówno wybranych urzędników, jak i dystrykty.
Dzielnice można uzyskać według współrzędnych GPS (lat / lng) w następujący sposób:
https://developers.google.com/civic-information/docs/v2/representatives/representativeInfoByAddress
Możesz uzyskać podobne informacje o poziomie stanu za pomocą OpenStates :
"http://openstates.org/api/v1/legislators/geo/?apikey={0}&lat={1}&long={2}";
Dodatki na temat interfejsu API Google Civics często się psują
Interfejs API Google Civics jest niejasny w kwestii tego, czy obsługuje lat / lng, a co kilka miesięcy, po prostu przestanie obsługiwać lat / lng przez około miesiąc, dopóki ktoś go nie zgłosi i Google nie zauważy, a dokładniej, jednego pracownika prawdopodobnie pracują nad tym w swoich informacjach o czasie wolontariatu („Chelan”) i zastanawiają się, jak to naprawić:
https://groups.google.com/d/msg/google-civicinfo-api/0td48h7JxYA/Zhij3yQiCgAJ
Jeśli Twoja usługa spodziewa się, że dane interfejsu API Civics ulegną awarii, a jeśli wymaga danych Civics API, może się nie zawiesić, ale będzie bezużyteczna przez wiele miesięcy. Ostatnią porażką był cały okres głosowania w większości stanów w 2018 r., Więc to dość przestój.
Możesz grać w obronę, wyraźnie odwracając geokodowanie:
Więc tutaj przechodzimy przez zwykłe pytanie HTML5 o lokalizację użytkownika, a jeśli powiedzą Nie / Blokuj, pokażemy im komunikat „Nie można uzyskać Twojej lokalizacji” (z geoFail). Mamy już łacinę / język, ale interfejs API Google Civics jest zmienny, więc poprosimy Google o podanie adresu. To wraca jako r [0] .formatowany_adres, który w niektórych odpowiedziach Google zaleca pokazanie użytkownikowi, aby potwierdzić lokalizację, w której szuka. Więc umieszczamy to w polu tekstowym adresu i wysyłamy za pośrednictwem
loadReps(lat, lng, address)
.Pamiętaj, że możliwe jest, że wywołanie geokodu może się nie powieść (w tym z powodu niestabilnego połączenia internetowego), ale czasami interfejs API Google Civics jest w pełni operacyjny, więc nie musisz odmawiać użytkownikowi wyniku w tym scenariuszu; backend, który napisałem w tym przypadku, może zaakceptować adres łaciński i opcjonalny oraz tolerować brakujący adres. Następnie próbuje porozmawiać z Google Civics API, a jeśli nic nie dostanie, musi to przeżyć i powiedzieć użytkownikowi, że interfejs API Civics jest zepsuty, przepraszam.
Odpowiedź historyczna
Kongresowy interfejs API od Sunlight Foundation * jest dostępny tylko na poziomie federalnym - bez poziomu państwowego, jeśli ma to dla Ciebie znaczenie. I [Sunlight Foundation zamyka się, ponieważ nie chcą powielać wysiłków GovTrack.
Interfejs API GovTrack * jest bardziej kompletny. Ich
/role
jest najbliżej twojego pytania:https://www.govtrack.us/developers/api#endpoint_role
Mówi wszystkim obecnym senatorom i członkom Izby oraz o ich następnych wyborach. Więc miałbyś obciążenie filtrujące.
Do rzeczy na poziomie stanu chcesz OpenStates.org, takich jak:
http://openstates.org/api/v1/legislators/geo/?apikey= {0} & lat = {1} i long = {2}
https://openstates.org/
* Złe wieści, wszystko zamyka się cały czas. Fundacja Sunlight zamknęła API, aby uniknąć powielania pracy Govtrack. Govtrack zamyka teraz ich , aby uniknąć powielania pracy ProPublica. Ale Propublica's wcale nie daje ci dystansu z lokalizacji:
https://projects.propublica.org/api-docs/congress-api/
Poczekaj więc, możesz powiedzieć, że to nie ma sensu, ponieważ witryna Repozytorium ProPublica , która jest przeniesiona z projektu Reprezentacja zamknięcia NYTimes, pozwala zmapować adres i uzyskać dzielnicę od współrzędnych GPS. I link do ich interfejsu API z tej strony. Dobrze cię oszukałem, bo ta strona nie używa swojego API. W rzeczywistości korzysta z interfejsu API do wyszukiwania dzielnic Sunlight Foundation.
Co za bałagan.
źródło
Zdaję sobie sprawę, że to pytanie jest stare, ale pomyślałem, że wrzucę moje dwa centy za każdego, kto może wciąż patrzeć.
Po pierwsze, kilka podstawowych informacji. Dzielnice kongresowe są niezwykle specyficzne - aż do samego adresu, nie tylko ulicy. Ja i mój sąsiad po drugiej stronie ulicy mogą znajdować się w różnych dzielnicach kongresowych. Dlatego tak ważne jest, aby uzyskać dobry kod ZIP + 4, aby upewnić się, że umieścisz adres we właściwej dzielnicy. System (taki jak SmartyStreets lub Melissa Data lub QAS itp.), Który sprawdza poprawność adresu, dałby ci wiarygodne ZIP + 4, aby upewnić się, że dzielnica jest poprawna.
SmartyStreets ma interfejs API LiveAddress , który zwraca dane kongresowe wraz z ponad 40 innymi punktami danych (geokody, dane mieszkaniowe vs. komercyjne itp.).
źródło
Melissa Data tworzy narzędzia do weryfikacji adresu, które obejmują informacje o dzielnicach politycznych. Nie wiem, czy mają publiczny interfejs API; powyższy link prowadzi do strony wyszukiwania adresu. Oferują ograniczoną liczbę bezpłatnych wyszukiwań, które można zwiększyć dzięki subskrypcji . Przed umieszczeniem tego w aplikacji produkcyjnej sprawdź warunki użytkowania.
Chociaż ich dane są aktualizowane co miesiąc, zauważyłem, że niektóre z nich nie odzwierciedlają niedawnej redystrybucji.
Wiele stanów ma te informacje dostępne, ale wątpię, by w ich wdrażaniu była jakaś spójność.
źródło