Thread View: pl.comp.bazy-danych.msaccess
27 messages
27 total messages
Started by alex andryt
Sat, 22 Aug 2015 20:51
Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Sat, 22 Aug 2015 20:51
Date: Sat, 22 Aug 2015 20:51
128 lines
5964 bytes
5964 bytes
'' Mamy IE osadzony w formularzu
'' przycisk 'Command2_Click' uruchamia 2 akcje:
'' 1. Wyświetla IE w formularzu (co przestało działać i nie pomogła zmiana w ustawieniach IE związana z tym, ze teraz GMaps ma https)
'' 2. Wycina z html koordynaty i wstawia do pola tekstowego LongLat (co również przestało działać wraz z wprowadzonymi przez Google zmianami.)
'' Proszę o pomoc w poprawieniu tego kodu ('' Access 2003)
''' wstęp:
Option Compare Database
Private GMAPI_Key As String
Private appIE As Object ' Późne wiązanie
''' problematyczny sub do poprawki:
Private Sub Command2_Click()
Dim objBrowser As Object
Set objBrowser = Me.WebBrowser9
''' wpisałem formułę If Not IsNull(Forms![NazwaMojegoFormularza]![NazwaPolaWFormularzu]) Then .... End If
''' i wyeliminowałem
''' Run-time error '94'
''' Invalid use of Null
If Not IsNull(Forms![frmMapsGoogle]![Address1]) Then
NewAddress = Replace(Address1, Chr(32), "+")
End If
If Not IsNull(Forms![frmMapsGoogle]![Zip]) Then
NewZip = Replace(Zip, Chr(32), "+")
End If
If Not IsNull(Forms![frmMapsGoogle]![City]) Then
NewCity = Replace(City, Chr(32), "+")
End If
If Not IsNull(Forms![frmMapsGoogle]![City]) Then
NewCountry = Replace(Country, Chr(32), "+")
End If
GMAPI_Key = "ABQIAAAAxH4hZ8E7PyLfMe-tUHrZ3hQ7bGGcDLxcoboTLXbcak2FlPwosxRi4ZromqWgsnzCxPCb43pGk8hreQ"
''' kiedyś działało:
MyGoogleMapURL = "http://maps.google.pl/maps?q=" & NewAddress & "+" & NewZip & "+" & NewCity & "+" & NewCountry & "&t=k" & "&z=7" & "&iwloc=A&hl=pl"
'' nie pomogła zmiana url na:
'' MyGoogleMapURL = "https://www.google.pl/maps/place/" & NewAddress & "+" & NewZip & "+" & NewCity & "+" & NewCountry & "&t=k" & "&z=7" ' & "&iwloc=A&hl=pl"
slocationdata = NewCountry & "+" & NewZip & "+" & NewCity & "+" & NewAddress
''' zamiana polskich znakow w ADRESIE:
slocationdata = ReplaceCharsToASCII(slocationdata)
slocationdata = Trim(slocationdata)
' kiedyś działało:
slocationdata = "http://maps.google.pl/maps/geo?q=" & slocationdata
'' dzis nie pomogło:
'' slocationdata = "https://www.google.pl/maps/place/" & slocationdata
slocationdata = slocationdata & "&output=csv&key=%20"
slocationdata = slocationdata & GMAPI_Key
'' ========================================
''.Navigate MyGoogleMapURL
If appIE Is Nothing Then
CreateIEApp
End If
appIE.Navigate slocationdata
Do While appIE.Busy
DoEvents
Loop
On Error Resume Next
'' do 'geocode' pobieram WYCINKI z html zawierające koordynaty
'' ale teraz koordynaty są w innym miejscu i proszę o pomoc w ich wskazaniu:
geocode = appIE.Document.Body.innerHTML
geocode = Mid(geocode, InStr(geocode, ",") + 3, InStr(geocode, "/") - InStr(geocode, ",") - 4)
'' ========================================
.. nie wiem po co to poniższe powtórzenie kodu
slocationdata = NewCountry & "+" & NewZip & "+" & NewCity & "+" & NewAddress
''' zamiana polskich znaków w ADRESIE
slocationdata = ReplaceCharsToASCII(slocationdata)
slocationdata = Trim(slocationdata)
' kiedyś działało to:
slocationdata = "http://maps.google.pl/maps?hl=pl&q=" & slocationdata & "&ll=" & geocode & "&iwloc=cent&output=embed" ' gdyby chcieć mapę bez lewego marginesu to "&output=embed&iwloc=near"
' zamiana linku na poniższy nie pomogło:
' slocationdata = "https://www.google.pl/maps/place/" & slocationdata & "&ll=" & geocode & "&iwloc=cent&output=embed"
'' ========================================
''LongLat to pole tekstowe w formularzu, do którego wstawiamy koordynaty - wcześniej je wycieliśmy z html'a
LongLat.Caption = geocode
strMap = slocationdata & geocode
Me.WebBrowser9.Visible = True
' niestety, ale poniższe ustawienia wcześniej też nie działały. Ani wysokość ani szerokość
'Me.WebBrowser9.Width = 875
'Me.WebBrowser9.Height = 700
Me.WebBrowser9.Navigate strMap
End Sub
''' ________________________________
''' Pozostałe elementy w formularzu:
Private Sub Form_Close()
Me.TimerInterval = 1000
MyAssigned = False
Set objBrowser = Nothing
DoCmd.Hourglass False
End Sub
Private Function CreateIEApp()
''//Create Internet Explorer application Object
On Error GoTo errHand
Set appIE = CreateObject("InternetExplorer.Application")
Exit Function
errHand:
appIE = Nothing
End Function
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: MaciejF
Date: Mon, 24 Aug 2015 11:07
Date: Mon, 24 Aug 2015 11:07
16 lines
1993 bytes
1993 bytes
Witaj, kliknąłem poniższego linka w twoim kodzie: '' MyGoogleMapURL = "https://www.google.pl/maps/place/" i google maps wstawiło koordynatę ze znakiem @ https://www.google.pl/maps/@53.0348588,18.6841151,16z Nie wiem czy twój następujący później string ma taki format. Może się mądrzę ale jak rozumiem szukasz każdej podpowiedzi. & NewAddress & "+" & NewZip & "+" & NewCity & "+" & NewCountry & "&t=k" & "&z=7" ' & "&iwloc=A&hl=pl" slocationdata = NewCountry & "+" & NewZip & "+" & NewCity & "+" & NewAddress
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: MaciejF
Date: Mon, 24 Aug 2015 11:15
Date: Mon, 24 Aug 2015 11:15
9 lines
1648 bytes
1648 bytes
Działa poniższe https://www.google.pl/maps/place/Toru%C5%84/@53.0120968,18.6102738,11.92z/data=!4m2!3m1!1s0x470334e1d994ec19:0x744a729a586a89c4 Pozdrawiam / MF
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: MaciejF
Date: Mon, 24 Aug 2015 12:16
Date: Mon, 24 Aug 2015 12:16
5 lines
1716 bytes
1716 bytes
Działa też: https://www.google.pl/maps/place/Bydgoszcz/85-624/Poland do tego momentu jest dobrze.
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: MaciejF
Date: Mon, 24 Aug 2015 12:30
Date: Mon, 24 Aug 2015 12:30
3 lines
1671 bytes
1671 bytes
działa też wyszukiwanie po adresie i kodzie pocztowym https://www.google.pl/maps/place/plac+18+Stycznia+4,+87-100+Toru%C5%84/@53.0118419,18.619767,17z/data=!3m1!4b1!4m2!3m1!1s0x470334dfb2f6546d:0x58f7c7f77ec586e4
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Mon, 24 Aug 2015 15:57
Date: Mon, 24 Aug 2015 15:57
20 lines
2410 bytes
2410 bytes
W dniu poniedziałek, 24 sierpnia 2015 14:30:36 UTC+2 użytkownik MaciejF napisał: > (...) Maciej, Jeśli wpiszesz - nawet błędny - Link 'www.google (...) do paska przeglądarki bezpośrednio, to google 'się dostosuje' i poprawi link w taki sposób, aby wyświetlić mapę. Jednak, jeśli wywołuję mapę, aby wyświetlić jej zawartość w formularzu Accessa (a nie w przeglądarce bezpośrednio), wówczas mam dwa błędy: 1. Nie widzę oczekiwanej mapy (w moim podformularzu) 2. Nie mogę wyciąć z niej koordynatów (bo prezentowany tu - stary fragment kodu obsługujący Html zwraca niewłaściwą wartość). Z tego powodu, ufając że ktoś już rozgryzł ten problem, zwróciłem się na forum. Wiadomo bowiem, że google zmienił, jakiś czas temu, zasady gry. (Wcześniej tego nie potrzebowałem, ale teraz ... szukam rozwiązań). W każdym razie, dziękuję za Twoje posty :)
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Thu, 03 Sep 2015 08:20
Date: Thu, 03 Sep 2015 08:20
34 lines
2340 bytes
2340 bytes
A musi być Google?
http://mactok.blogspot.com/2015/02/blog-post.html
Pozdrawiam,
Maciej
Użytkownik "alex andryt" napisał w wiadomości grup
dyskusyjnych:38a8cbb2-3372-42d7-884a-2d759c2871d5@googlegroups.com...
W dniu poniedziałek, 24 sierpnia 2015 14:30:36 UTC+2 użytkownik MaciejF
napisał:
> (...)
Maciej,
Jeśli wpiszesz - nawet błędny - Link 'www.google (...)
do paska przeglądarki bezpośrednio,
to google 'się dostosuje' i poprawi link w taki sposób,
aby wyświetlić mapę.
Jednak, jeśli wywołuję mapę, aby wyświetlić jej zawartość
w formularzu Accessa (a nie w przeglądarce bezpośrednio),
wówczas mam dwa błędy:
1. Nie widzę oczekiwanej mapy (w moim podformularzu)
2. Nie mogę wyciąć z niej koordynatów (bo prezentowany tu - stary fragment
kodu obsługujący Html zwraca niewłaściwą wartość).
Z tego powodu, ufając że ktoś już rozgryzł ten problem, zwróciłem się na
forum.
Wiadomo bowiem, że google zmienił, jakiś czas temu, zasady gry.
(Wcześniej tego nie potrzebowałem, ale teraz ... szukam rozwiązań).
W każdym razie, dziękuję za Twoje posty :)
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Wed, 09 Sep 2015 15:11
Date: Wed, 09 Sep 2015 15:11
1 lines
1742 bytes
1742 bytes
Dziękuję za link do przykładu z alternatywą dla google. Chętnie podejmę próbę z czymś, co stanowi konkurencję dla giganta :) Zapoznam się i dam znać.
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Wed, 09 Sep 2015 15:15
Date: Wed, 09 Sep 2015 15:15
5 lines
1679 bytes
1679 bytes
Accdb... ======== Niestety nie podziałam wiele, bo pracuję na Acc2003, a rozszerzenie Accdb, zdaje się, jest późniejszą wersją Accessa. Czy się mylę?
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Wed, 09 Sep 2015 19:15
Date: Wed, 09 Sep 2015 19:15
16 lines
1625 bytes
1625 bytes
W dniu 09-09-2015 o 17:15, alex andryt pisze: > Accdb... > ======== > > Niestety nie podziałam wiele, bo pracuję na Acc2003, > a rozszerzenie Accdb, zdaje się, jest późniejszą wersją Accessa. Czy się mylę? > A próbowałeś pobrać przykładowe pliki? Bazy są w formacie *.mdb -- Pozdrowienia BraZby www.faq.accdb.pl/ www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Thu, 10 Sep 2015 07:36
Date: Thu, 10 Sep 2015 07:36
5 lines
1815 bytes
1815 bytes
> Niestety nie podziałam wiele, bo pracuję na Acc2003, > a rozszerzenie Accdb, zdaje się, jest późniejszą wersją Accessa. Czy się mylę? Dodałem plik .mdb do paczki. M.
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Thu, 10 Sep 2015 10:10
Date: Thu, 10 Sep 2015 10:10
32 lines
2078 bytes
2078 bytes
W dniu 09-09-2015 o 21:15, Zbigniew Bratko pisze: > W dniu 09-09-2015 o 17:15, alex andryt pisze: >> Accdb... >> ======== >> >> Niestety nie podziałam wiele, bo pracuję na Acc2003, >> a rozszerzenie Accdb, zdaje się, jest późniejszą wersją Accessa. Czy >> się mylę? >> > > A próbowałeś pobrać przykładowe pliki? > Bazy są w formacie *.mdb > [...] Sprostowanie: Myślałem, że uwaga dot. "accdb" dotyczy przykładowych baz z mojej strony: http://www.gps.accdb.pl NTG. Do Macieja Wreszcie w czytniku zobaczyłem Twój ostatni post (Macieja T.). Czy coś zmieniałeś w ustawieniach, czy też wreszcie Thunderbird widzi u mnie Twoje posty ? -- Pozdrowienia BraZby www.faq.accdb.pl/ www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Thu, 10 Sep 2015 10:27
Date: Thu, 10 Sep 2015 10:27
12 lines
2175 bytes
2175 bytes
> NTG. Do Macieja > Wreszcie w czytniku zobaczyłem Twój ostatni post (Macieja T.). Czy coś > zmieniałeś w ustawieniach, czy też wreszcie Thunderbird widzi u mnie > Twoje posty ? Hej! :-) Jak piszę przez przeglądarkę jest ok. Ale też posługuję się klientem: "Pocztą usługi Windows Live", a tam mam jakiś kulawy serwer zapodany: news.aioe.org. No i jak wysyłam z tegoż klienta to Ty nie widzisz moich wątków. Pewnie coś miesza z nagłówkami ten aioe. Muszę wyszukać jakiś inny adres, znasz? Serdeczności! Maciej
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Thu, 10 Sep 2015 19:39
Date: Thu, 10 Sep 2015 19:39
8 lines
2014 bytes
2014 bytes
> > Dodałem plik .mdb do paczki. > M. Dziękuję. Przyglądałem się temu. Fajne. Masz może jakiś przykład kodu do pobierania odległości z tej mapy, dla rekordów pobranych z bazy Acc, i ich zapisywania w tabeli?
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Fri, 11 Sep 2015 18:05
Date: Fri, 11 Sep 2015 18:05
21 lines
2180 bytes
2180 bytes
W dniu 10-09-2015 o 12:27, Maciej Tokarz pisze: > >> NTG. Do Macieja >> Wreszcie w czytniku zobaczyłem Twój ostatni post (Macieja T.). Czy coś >> zmieniałeś w ustawieniach, czy też wreszcie Thunderbird widzi u mnie >> Twoje posty ? > > Hej! :-) > > Jak piszę przez przeglądarkę jest ok. Ale też posługuję się klientem: "Pocztą usługi Windows Live", a tam mam jakiś kulawy serwer zapodany: news.aioe.org. No i jak wysyłam z tegoż klienta to Ty nie widzisz moich wątków. Pewnie coś miesza z nagłówkami ten aioe. Muszę wyszukać jakiś inny adres, znasz? Ostatnio zmieniłem Windows 7 na Windows 10. Być może tu jest rozwiązanie problemu ??? Ja używam news.atman.pl. -- Pozdrowienia BraZby www.faq.accdb.pl/ www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Sat, 12 Sep 2015 04:54
Date: Sat, 12 Sep 2015 04:54
10 lines
2259 bytes
2259 bytes
> Ostatnio zmieniłem Windows 7 na Windows 10. Być może tu jest rozwiązanie > problemu ??? > > Ja używam news.atman.pl. > Dzięki za serwer :). Okazuje się, że ten aioe ma za zadanie maskować autora (nie doczytałem ustawiając go w kliencie) i robił to skutecznie jak widać... Odnośnie Win 10 jak na razie spotkałem się z problemem synchronizacji na koncie Windows Live gdzie mam podpiętą własną domenę (jeszcze do kwietnia zeszłego roku można to było za free robić). Ale poza tym system spisuje się na +5. M.
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Sun, 13 Sep 2015 09:09
Date: Sun, 13 Sep 2015 09:09
6 lines
2111 bytes
2111 bytes
Hej! Przykładów nie mam, ale możliwości jest sporo... Pewnie dało by się wykorzystać np. taki ficzer: http://project-osrm.org/, ale nie wiem jak z Accessem bo od ładnych kilku lat styczności z VBA nie mam - a grupę śledzę z sentymentu :) No i OpenLayers też ma sporo metod, które można zaimplementować! M.
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Tue, 15 Sep 2015 21:24
Date: Tue, 15 Sep 2015 21:24
63 lines
3419 bytes
3419 bytes
W dniu 2015-09-10 o 21:39, alex andryt pisze: >> >> Dodałem plik .mdb do paczki. >> M. > > Dziękuję. Przyglądałem się temu. Fajne. > Masz może jakiś przykład kodu do pobierania odległości z tej mapy, > dla rekordów pobranych z bazy Acc, > i ich zapisywania w tabeli? Czy w bazie masz określone tzw. waypointy. Jeżeli tak, czy w formie tekstowej, czy też współrzędnych GPS (LonLat) Można się pobawić z usługą "Google Directions API - request" Tworzysz przykładowy URL: http://maps.googleapis.com/maps/api/directions/xml?origin=Krakow&destination=Lublin&waypoints=Kielce|Radom|Pulawy&sensor=false Pobierasz XML i wyciągasz z niego dane dotyczące długości etapów. Nie wiem, czy to jest zgodne z zasadami dyktowanymi przez wujka Google, patrz: https://developers.google.com/maps/documentation/directions/usage-limits ale pobawić się można. Da się to zrobić. W kontrolce "Microsoft Web Browser" wyświetlany jest XML, który można pobrać, lekko zmodyfikować i da się pobrać odległości. Obiecujące jest (było): Direct Routing Request (via GET) http://wiki.openstreetmap.org/wiki/OpenRouteService#Direct_Routing_Request_.28via_GET.29 ale nie dałem rady z argumentem via= Najprostsze jest chyba skorzystanie z linku podanego przez Maćka: http://project-osrm.org/ i dalej: https://github.com/Project-OSRM/osrm-backend/wiki/Server-api O ile w Google Directions API możesz się posługiwać polskimi nazwami miast, to w pozostałych przykładach musisz podawać współrzędne LonLat punktów docelowych i pośrednich. I chyba Google Directions API jest dokładniejsze i daje większe możliwości. Przykładowa trasa : z Krakowa do Lublina przez Kielce, Radom, Puławy Google Directions API: - 310 km OSRM: - 323 km Różnica może wynikać z optymalizowania trasy przez GoogleMaps (obwodnica miast itp.) -- Pozdrowienia BraZby www.faq.accdb.pl/ www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Thu, 17 Sep 2015 18:03
Date: Thu, 17 Sep 2015 18:03
27 lines
3351 bytes
3351 bytes
W dniu wtorek, 15 września 2015 23:24:18 UTC+2 użytkownik Zbigniew Bratko napisał: > Czy w bazie masz określone tzw. waypointy. Fragment kodu, który próbuję 'naprawić' miał za zadanie pobrać koordynaty na podstawie adresu pocztowego, głównie dla nowych rekordów, bo prawie wszystkie rekordy w bazie mam już z geokodami. Waypoint'ów na tym etapie nie wskazuję. [Chętnie prześlę ten formularz, ale nie wiem, jak tutaj przesyła się załączniki? (a jeśli nie tu, to może gdzieś indziej. Polecicie coś Panowie?)] > Jeżeli tak, czy w formie tekstowej, czy też współrzędnych GPS (LonLat) Long Lat zapisuję jako liczbę i jako tekst, ponieważ na dalszym etapie chciałem zbudować zapytanie SQL w ACC i jego wynik (drogę pomiędzy punktami) wyświetlać w przeglądarce. I na tym etapie są momenty, w których trzeba wskazać waypoint (LngLat). Na dalszym etapie chciałbym to rozwijać w wielu kierunkach :) np.1. pokazanie rekordu na tle kilku punktów docelowych (celem wyboru tego, który 'na oko' jest najkorzystniej położony) np.2. pokazanie rekordów celem zaplanowania trasy odwiedzin np.3. pokazanie różnych warstw rekordów pobranych formantu lstLista, tzn. a) filtruję rekordy w kwerendzie b) wynik filtracji przeglądam w polu lstLista c) eksportuję je sobie jako warstwa nr1; d) czynność a,b ponawiam i eksportuje jako warstę nr2, itd. Ale teraz chciałbym też takie coś, co zbudowałeś w przykładzie z wieloma warstwami, które można wyświetlać na mapie poprzez zaznaczenie checkbox'u (ten link zniknął chyba wraz z częścią dyskusji, ale jest super :)
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Thu, 17 Sep 2015 18:17
Date: Thu, 17 Sep 2015 18:17
6 lines
2033 bytes
2033 bytes
Sprostowanie: Przykład, o którym wspomniałem, istnieje i znajduje sią w wątku: https://groups.google.com/forum/#!topic/pl.comp.bazy-danych.msaccess/rQXSRWQPbaI Link do niego bezpośredni: http://gps-test.accdb.pl/ Zgubiłem się w wątkach :)
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Fri, 18 Sep 2015 15:42
Date: Fri, 18 Sep 2015 15:42
145 lines
5680 bytes
5680 bytes
W dniu 2015-08-22 o 22:51, alex andryt pisze:
> '' Mamy IE osadzony w formularzu
> '' przycisk 'Command2_Click' uruchamia 2 akcje:
> '' 1. Wyświetla IE w formularzu (co przestało działać i nie pomogła zmiana w ustawieniach IE związana z tym, ze teraz GMaps ma https)
> '' 2. Wycina z html koordynaty i wstawia do pola tekstowego LongLat (co również przestało działać wraz z wprowadzonymi przez Google zmianami.)
>
> '' Proszę o pomoc w poprawieniu tego kodu ('' Access 2003)
[ciach]
A może tak bez kontrolki MS Web Browser, korzystając z OpenStreetMap:
Private Type tpAdress
street As String
city As String
county As String
state As String
country As String
postalcode As String
End Type
'____________________________________________________________________
Private Function GetLatLon(tpElements As tpAdress, _
Optional sDelim As String = ",") As String
Dim oHttp As Object
Dim sResponse As String
Dim sURL As String
Dim sQry As String
With tpElements
If Len(.street) > 0 Then sQry = sQry & .street & ","
If Len(.city) > 0 Then sQry = sQry & .city & ","
If Len(.county) > 0 Then sQry = sQry & .county & ","
If Len(.state) > 0 Then sQry = sQry & .state & ","
If Len(.country) > 0 Then sQry = sQry & .country & ","
'If Len(.postalcode) > 0 Then sQry = sQry & .postalcode & ","
End With
If Len(sQry) = 0 Then Exit Function
sQry = Left$(sQry, Len(sQry) - 1)
sQry = sQry & "&format=xml&polygon=0&addressdetails=0"
sURL = "http://nominatim.openstreetmap.org/search?q=" & sQry
Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
With oHttp
.Open "GET", sURL
.send
sResponse = .responseText
End With
Set oHttp = Nothing
Dim lInStrStart As Long
Dim lInStrEnd As Long
Dim sLatRet As String
Dim sLonRet As String
Const cLat As String = "lat='"
Const cLon As String = "lon='"
Const cEnd As String = "' "
'Pobierz Lat:
lInStrStart = InStr(1, sResponse, cLat, vbTextCompare)
If lInStrStart = 0 Then Exit Function
lInStrEnd = InStr(lInStrStart, sResponse, cEnd, vbTextCompare)
If lInStrEnd = 0 Then Exit Function
lInStrStart = lInStrStart + Len(cLat)
sLatRet = Mid$(sResponse, lInStrStart, lInStrEnd - lInStrStart)
'Pobierz Lon:
lInStrStart = InStr(1, sResponse, cLon, vbTextCompare)
If lInStrStart = 0 Then Exit Function
lInStrEnd = InStr(lInStrStart, sResponse, cEnd, vbTextCompare)
If lInStrEnd = 0 Then Exit Function
lInStrStart = lInStrStart + Len(cLon)
sLonRet = Mid$(sResponse, lInStrStart, lInStrEnd - lInStrStart)
GetLatLon = sLatRet & sDelim & sLonRet
End Function
'________________________________
Private Sub btnLatLon_Click()
Dim tpMyAdress As tpAdress
Dim sLatLon As String
'Im bardziej szczegółowy adres, tym łatwiej o pomyłkę
With tpMyAdress
.street = "170 Kornatka"
.city = "Dobczyce"
.county = "myślenicki"
.state = "małopolskie"
.country = "polska"
'.postalcode = "xyz" ' chyba na etapie testów
End With
sLatLon = GetLatLon(tpMyAdress)
If Len(sLatLon) > 0 Then
MsgBox sLatLon
Else
MsgBox "Niepowodzenie"
End If
End Sub
i małe pytanko na koniec.
Czy ktoś potrafi dobrać się do wartości lon i lat z poniższego XML'a,
za pomocą MSXML2.DOMDocument.
Coś w rodzaju:
'Set xmlNodeList = xmldoc.selectNodes("//searchresults/place")
'Set myNode = xmldoc.SelectSingleNode("//searchresults/place")
czy coś podobnego.
<?xml version="1.0" encoding="UTF-8" ?>
<searchresults timestamp='Fri, 18 Sep 15 15:33:52 +0000'
attribution='Data © OpenStreetMap contributors, ODbL 1.0.
http://www.openstreetmap.org/copyright' querystring='170
Kornatka,Dobczyce,myślenicki,małopolskie,polska' polygon='false'
exclude_place_ids='35513053'
more_url='http://nominatim.openstreetmap.org/search.php?format=xml&exclude_place_ids=35513053&q=170+Kornatka%2CDobczyce%2Cmy%C5%9Blenicki%2Cma%C5%82opolskie%2Cpolska'>
<place place_id='35513053' osm_type='node' osm_id='2823660213'
place_rank='30'
boundingbox="49.8480835,49.8481835,20.0808957,20.0809957"
lat='49.8481335' lon='20.0809457' display_name='170, Kornatka, gmina
Dobczyce, powiat myślenicki, województwo małopolskie, 32-410, Polska'
class='place' type='house' importance='0.511'/></searchresults>
--
Pozdrowienia
BraZby
www.faq.accdb.pl/
www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Fri, 18 Sep 2015 16:33
Date: Fri, 18 Sep 2015 16:33
32 lines
2720 bytes
2720 bytes
W dniu 2015-09-17 o 20:17, alex andryt pisze: > Sprostowanie: > Przykład, o którym wspomniałem, istnieje i znajduje sią w wątku: > https://groups.google.com/forum/#!topic/pl.comp.bazy-danych.msaccess/rQXSRWQPbaI > Link do niego bezpośredni: > http://gps-test.accdb.pl/ Niestety. Ja o tym testowym przykładzie już zapomniałem. Dobrze, że się znalazł :-). Robiłem go chyba w 2012 roku i od tego czasu dałem sobie spokój. > Zgubiłem się w wątkach :) Nie jest tak źle. Przykład ze strony http://gps-test.accdb.pl/ oparty jest na trasie zarejestrowanej przez GPS w pliku *.gpx (składającej się z wielu punktów LatLon). Trasa wyświetlana jest przez bibliotekę OpenLayers ver. 1.4 a obecnie jest ver.3.9 i przykłady moje nie działają na wyższych wersjach OpenLayers. I nie chce już mi się zgłębiać tajnków nowej wersji OpenLayers. Jeżeli będziesz miał problem, to pisz na grupę. Ale nie obiecuję, że Ci pomogę, ponieważ z Accessa korzystam już sporadycznie i wyszedłem z wprawy. Jak nie ja, to są inni. Coś wspólnie może się da zrobić. -- Pozdrowienia BraZby www.faq.accdb.pl/ www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: alex andryt
Date: Sat, 19 Sep 2015 15:04
Date: Sat, 19 Sep 2015 15:04
11 lines
2392 bytes
2392 bytes
W dniu piątek, 18 września 2015 17:42:47 UTC+2 użytkownik Zbigniew Bratko napisał: > A może tak bez kontrolki MS Web Browser, korzystając z OpenStreetMap: Fajne. Spróbuję to podpiąć. W dniu piątek, 18 września 2015 18:33:57 UTC+2 użytkownik Zbigniew Bratko napisał: > Jeżeli będziesz miał problem, to pisz na grupę. Dziękuję. Będę próbował formułować w miarę konstruktywne pytania żeby nie wyczerpać Waszej cierpliwości :) Pozdrawiam,
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Sun, 20 Sep 2015 20:07
Date: Sun, 20 Sep 2015 20:07
46 lines
2615 bytes
2615 bytes
W dniu 2015-09-18 o 17:42, Zbigniew Bratko pisze:
[...]
>
> i małe pytanko na koniec.
>
> Czy ktoś potrafi dobrać się do wartości lon i lat z poniższego XML'a,
> za pomocą MSXML2.DOMDocument.
>
> Coś w rodzaju:
>
> 'Set xmlNodeList = xmldoc.selectNodes("//searchresults/place")
> 'Set myNode = xmldoc.SelectSingleNode("//searchresults/place")
>
> czy coś podobnego.
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <searchresults timestamp='Fri, 18 Sep 15 15:33:52 +0000'
> attribution='Data © OpenStreetMap contributors, ODbL 1.0.
> http://www.openstreetmap.org/copyright' querystring='170
> Kornatka,Dobczyce,myślenicki,małopolskie,polska' polygon='false'
> exclude_place_ids='35513053'
> more_url='http://nominatim.openstreetmap.org/search.php?format=xml&exclude_place_ids=35513053&q=170+Kornatka%2CDobczyce%2Cmy%C5%9Blenicki%2Cma%C5%82opolskie%2Cpolska'>
>
> <place place_id='35513053' osm_type='node' osm_id='2823660213'
> place_rank='30'
> boundingbox="49.8480835,49.8481835,20.0808957,20.0809957"
> lat='49.8481335' lon='20.0809457' display_name='170, Kornatka, gmina
> Dobczyce, powiat myślenicki, województwo małopolskie, 32-410, Polska'
> class='place' type='house' importance='0.511'/></searchresults>
>
odpowiem sam sobie:
sLat =
xmlDoc.SelectSingleNode("//searchresults/place").Attributes.getNamedItem("lat").Text
I coś mi się chyba z kodowaniem w czytniku podziało ???
--
Pozdrowienia
BraZby
www.faq.accdb.pl/
www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Mon, 21 Sep 2015 07:08
Date: Mon, 21 Sep 2015 07:08
11 lines
1518 bytes
1518 bytes
odpowiem sam sobie:
sLat =
xmlDoc.SelectSingleNode("//searchresults/place").Attributes.getNamedItem("lat").Text
I coś mi się chyba z kodowaniem w czytniku podziało ???
>>>
Wszystko dobrze kodujesz :)
Czytnik również...
Wysyłałem do Ciebie maila na access@beztego... doszedł?
Maciej
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Zbigniew Bratko
Date: Mon, 21 Sep 2015 14:38
Date: Mon, 21 Sep 2015 14:38
42 lines
2408 bytes
2408 bytes
W dniu 2015-09-21 o 09:08, Maciej Tokarz pisze:
> odpowiem sam sobie:
> sLat =
> xmlDoc.SelectSingleNode("//searchresults/place").Attributes.getNamedItem("lat").Text
>
> I coĹ mi siÄ chyba z kodowaniem w czytniku podziaĹo ???
>>>>
>
> Wszystko dobrze kodujesz :)
> Czytnik rĂłwnieĹź...
Tyle tylko, że czytnik raz pokazuje krzaki, a raz dobrze.
Czasami muszę się przełączać na każdym poście.
> WysyĹaĹem do Ciebie maila na access@beztego... doszedĹ?
Tak. Doszedł. Trawię go, ale chyba pójdę inną drogą :-)
A co sądzisz o szukaniu punktów poprzez OSM.
Przykładowo:
Szukaj: boisko+Oporowska
http://nominatim.openstreetmap.org/search/stadion+Oporowska,wrocław,pl?format=xml&addressdetails=1
Geocoding reverse LatLon: 51.0961162,16.9967378434332
http://nominatim.openstreetmap.org/reverse?format=xml&lat=51.0961162&lon=16.9967378434332&addressdetails=1
Która Twoim zdaniem jest lepsza
www.mapquest.com czy www.openstreetmap.org.
Moim zdaniem OSM jest bardziej szczegółowa. Porównywałem dla centrum
Lublina i Bieszczadów. Ale to takie moje pierwsze wrażenie.
--
Pozdrowienia
BraZby
www.faq.accdb.pl/
www.acc97.accdb.pl/
Re: Google Maps i VBA Access- pobieranie koordynatów - wyświetlanie mapy w formularzu - kod, który kiedyś działał
Author: Maciej Tokarz
Date: Mon, 21 Sep 2015 17:19
Date: Mon, 21 Sep 2015 17:19
11 lines
1612 bytes
1612 bytes
Która Twoim zdaniem jest lepsza www.mapquest.com czy www.openstreetmap.org. Moim zdaniem OSM jest bardziej szczegółowa. Porównywałem dla centrum Lublina i Bieszczadów. Ale to takie moje pierwsze wrażenie. >>> Również moim zdaniem OSM jest o wiele lepszą mapą na pierwszy rzut oka :) Pozdrawiam, Maciej
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads