|
DACIA Klub Polska Forum Dyskusyjne Użytkowników DACII |
 |
Na każdy temat - Liczenie odległości z kodów pocztowych
czaju - 2011-07-19, 19:18 Temat postu: Liczenie odległości z kodów pocztowych Miałem trochę czasu, pomysł (i potrzebę :) ) i powstało coś co
a) zgromadziło potrzebne informacje (współrzędne placówek pocztowych ;p)
b)szybko, dobrze i sprytnie liczy odległość między nimi (uwzględniając to że Ziemia jest sferą, z jednej strony utrudnienie (bo przecież to niewielka różnica jeśli chodzi o jeden kraj), a z drugiej strony ułatwienie (bo przecież to nie sfera a elipsoida). Kilka założeń, analitycznie wyprowadzone wzory et voila:
http://montertvsat.pl/dis...=00001&to=41303
Wystarczy delikatnie modyfikować adres aby otrzymywać różne wyniki - z tego co przeglądałem bazę na 42 tysiące wpisów wygląda na to że jakieś 38000 powinno być poprawnych (niestety google też się czasami myli).
http://montertvsat.pl/dis...m=SKAD&to=DOKAD
uwaga kody pocztowe BEZ kreski ;p
docelowo mechanizm ma trafić na moje strony firmowe i ew. będzie odpłatnym API dla innych stron ;p
WhiteDragon - 2011-07-19, 20:12
???
czaju - 2011-07-19, 20:22
WhiteDragon napisał/a: | ??? |
To tylko tak, żeby pokazać że studenci informatyki, robią coś (mniej lub bardziej pożytecznego) poza piciem wódy ;p
Baza kodów na tyle na ile byłem w stanie zweryfikować jej poprawność do 01-025 powinna w 99% pokazywać dobrze - pozostała część minimum 90%
bebe - 2011-07-19, 20:27
Fajnie, ale. :) Podobną rzecz można sobie wyrzeźbić w 15 minut w Google Maps API. Nie wiem jak z kodami pocztowymi, ale z adresami działa świetnie, i można wyznaczać odległość lotem wrony albo po drogach.
czaju - 2011-07-19, 21:11
właśnie tutaj największą trudnością była translacja kodów na na współrzędne...
A co do takiego używania wprost google maps api to o ile się nie mylę to z dwóch powodów *nie zawsze* mi to pasuje:
1. z tego co pamiętam dane z api MUSZĄ być wyświetlane z mapą (tzn. nie muszą, ale google podobno banuje inne korzystanie z webservice'u)
2. będę takowe dane pobierał przez AJAX'a i niekoniecznie uśmiecha się do mnie wieczne korzystanie z webservice'u google'a, jak mogę sobie szybko i przyjemnie np. generować jakiegoś XML'a (jeśli będę potrzebował).
No i kwestia najważniejsza, samo wyprowadzenie wzoru na odległość na sferze nie jest super trudne i niekoniecznie zajęło więcej niż kilkanaście minut (błahe zadanie z punktu widzenia nawet I roku studiów technicznych, nie do ugryzienia po liceum...). Co prawda kwestia poruszania po drogach jest tym co w jakimś stopniu rekompensowałoby wady.
No i to co mnie drażni w google maps api to to że dopasowuje bardziej komplet ulica+numer niż ulica+miasto... i tak np. część adresów Warszawskich przeniosło się np do Sulejówka...
WhiteDragon - 2011-07-20, 21:04
O ile pierwszy link po wpisaniu w pasku adresowym kodów pocztowych bez kreski daje odległości prawdopodobne, to drugi po wpisaniu nazwy miejscowości w miejsca SKAD i DOKAD dają zawsze zero.
czaju - 2011-07-20, 21:26
WhiteDragon napisał/a: | O ile pierwszy link po wpisaniu w pasku adresowym kodów pocztowych bez kreski daje odległości prawdopodobne, to drugi po wpisaniu nazwy miejscowości w miejsca SKAD i DOKAD dają zawsze zero. |
Bo zarówno SKAD jak i DOKAD było przewidziane jako kody pocztowe - to ten sam link :) okazuje się że niestety dość duża część bazy (~4000 kodów) jest mniej lub bardziej myląca (tylko w tym mogą być kody większych ulic i placów w miastach, których anglojęzyczna nazwa jest różna od polskojęzycznej - np. jeśli zapytanie dot. Warszawa, a odpowiedź Warsaw to to również zostało zaliczone do puli (kody do 01-500 już przejżałem), drugi problem to duplikowanie nazw miejscowości np 42-583 Bobrowniki pierwotnie wskazywało na inne Bobrowniki a nie Bedzińskie. Także jest jeszcze co robić (myślę że ręcznej edycji będzie niestety wymagał co 10 kod (ok 5000), tylko ważne żeby to obwarunkować i napisać coś co pozwoli mi wygodnie wklejać współrzędne, chociażby z nawigacji...
WhiteDragon - 2011-07-20, 21:34
A to tak... No, w każdym razie wkleiłem sobie link do paska zakładek i pewnie czasem skorzystam, zatem dzięki!
|
|