Page 1 of 5

Geolocation: Google Maps

Posted: Thu Sep 15, 2016 12:36 am
by JHPJHP
-----------------------------------------------------------------------------------

Download Geolocation: Google Maps from My PureBasic Stuff

-----------------------------------------------------------------------------------

Announcements
PureBasic Interface to OpenCV
PureBasic Interface to WinDivert
PureBasic Interface to WinRAR
PureBasic Interface to 7-Zip
PureBasic Interface to ImDisk
Windows Services & Other Stuff
Invading Space Aliens
Death Star vs Asteroids
GIF Toolkit
LSB Image Steganography
Spider Web Drawing
Deform Image: MLS
Video Snipping Tool
Chromium Edge WebGadget
IAccessible Interface
Stitch Images: SIFT
OldSkool Fire Effect
Image Waves: LUT
YouTube Player & Downloader
MP4 Player & Downloader
Barcode Generator
Google Translate Service
Embed JS into PureBasic
Geolocation: Google Maps
Book & Viewer & Magnify
Video for Windows: VfW
Alternate Console
Network Share Management

-----------------------------------------------------------------------------------

Registry is temporarily modified to access HTML5: FEATURE_BROWSER_EMULATION.

-----------------------------------------------------------------------------------

Google Maps - GET A KEY :: Google Maps API :: IP-API
- Geolocation_Directions.pb / geolocation_directions.pbi
-- show / hide directions panel
-- show directions between two locations (draggable Markers)
-- Travel Mode options (Driving, Walking, Bicycling, Transit)
- Geolocation_IP_Address.pb / geolocation_ip_address.pbi
-- execute a Geolocation by IP4 address or URL (root address)
-- Default Zoom option
-- geolocate your current IP address
- Geolocation_Split_View.pb / geolocation_split_view.pbi
-- display a map location beside the same Street View location
-- Default Zoom option
- Geolocation_Two_Points.pb / geolocation_two_points.pbi
-- map the distance between two locations
-- Default Zoom option

-----------------------------------------------------------------------------------

The following links display an image of each example:

Geolocation_Directions.pb: Display a red and green Marker.
- hovering over the Marker should show a tooltip containing the location names
- Left-Mouse-Click the Marker should show an Info-Window with additional information

Geolocation_IP_Address.pb: Display a bouncing red marker inside a blue transparent circle.
- hovering over the Marker should show a tooltip containing the locations IP address
- Left-Mouse-Click the Marker should show an Info-Window with additional information

Geolocation_Split_View.pb: Display a map location beside the Street View of the same location.
- drag the golden emoji on the map side to a new location
- click the size icon on the Street View side to toggle full-screen

Geolocation_Two_Points.pb: Display a red and green Marker.
- hovering over the Marker should show a tooltip containing the location names
- Left-Mouse-Click the Marker should show an Info-Window with additional information

-----------------------------------------------------------------------------------

Quick method to geocode an address formatted to XML posted by Mijikai.

Code: Select all

InitNetwork()
Debug PeekS(ReceiveHTTPMemory("https://maps.google.com/maps/api/geocode/xml?sensor=false&address=Toronto+ON+CA&key=XXXXXXXXXX"), -1, #PB_UTF8)
Quick method to return directions formatted to JSON.

Code: Select all

InitNetwork()
Debug PeekS(ReceiveHTTPMemory("https://maps.google.com/maps/api/directions/json?origin=Toronto&destination=Mount+Rushmore&key=XXXXXXXXXX"), -1, #PB_UTF8)

Re: Geolocation VIA WebGadget

Posted: Thu Sep 15, 2016 6:39 am
by netmaestro
Works well here, gets everything right.

Re: Geolocation VIA WebGadget

Posted: Thu Sep 15, 2016 7:10 am
by JHPJHP
Hi netmaestro,

Thank you for testing the example and leaving a comment.

-------------------------------------------------------------------------

I noticed the ValidateData Procedure had a problem with one of the Regular Expression patterns, resulting in some IP address' incorrectly being tagged as invalid.

Updated:
- fixed Regular Expression pattern
- added additional Marker information

Re: Geolocation VIA WebGadget

Posted: Thu Sep 15, 2016 10:13 am
by Joris
Works here too with my IP adress, but how to add another adres (url or IP) and get that blue connection-line like above ?

Thanks.

Re: Geolocation VIA WebGadget

Posted: Thu Sep 15, 2016 5:24 pm
by JHPJHP
Hi Joris,

The image was misleading, so I replaced it with a more accurate visual representation of the example. This is not to say the "blue connection-line" feature you mentioned could not be included, but the current example was built static to uniquely showcase a single Geolocation.

On a similar note, multiple Markers can be added to a map with only a few changes to the SetScript Procedure:
- add additional array values: "['" + MarkerText + "'," + Longitude + "," + Latitude + "]"

Code: Select all

GeolocationData.s = #TAB$ + #TAB$ + #TAB$ + "var locations=[" + #LF$ +
                    #TAB$ + #TAB$ + #TAB$ + #TAB$ + "['" + MarkerText + "'," + Longitude + "," + Latitude + "]" + #LF$ +
                    #TAB$ + #TAB$ + #TAB$ + "];" + #LF$

Re: Geolocation VIA WebGadget

Posted: Thu Sep 15, 2016 10:51 pm
by JHPJHP
Updated:
- added a Default Zoom option
- various cosmetic changes

NB*: Depending on the location a high numbered zoom might best be viewed in Satellite mode.

Re: Geolocation VIA WebGadget

Posted: Fri Sep 16, 2016 9:17 am
by JHPJHP
Updated:
- added 1 example: Geolocation_TwoPoints.pb (geolocation_twopoints.pbi)

NB*: This example maps the distance between two locations; click the Marker to view information.

Re: Geolocation VIA WebGadget

Posted: Fri Sep 16, 2016 10:15 am
by Rings
great stuff, thx for sharing !!!!

Re: Geolocation VIA WebGadget

Posted: Fri Sep 16, 2016 6:30 pm
by JHPJHP
Hi Rings,

You're most welcome, and thank you for commenting.

--------------------------------------------------------------

Updated:
- added custom Markers: Geolocation_TwoPoints.pb
- added Marker animation

Re: Geolocation VIA WebGadget

Posted: Fri Sep 16, 2016 9:09 pm
by JHPJHP
Updated:
- added 1 example: Geolocation_Directions.pb (geolocation_directions.pbi)

NB*: This example shows directions between two locations (various Travel Modes); includes draggable Markers.

Re: Geolocation VIA WebGadget

Posted: Sat Sep 17, 2016 12:33 am
by GoodNPlenty
Very Nice! Thank You for sharing.

Re: Geolocation via WebGadget

Posted: Sun Sep 18, 2016 2:47 am
by JHPJHP
Hi GoodNPlenty,

You're welcome, thank you for commenting.

-----------------------------------------------------------

Updated:
- corrected latitude / longitude order
- added a Marker circle: Geolocation.pb
- changed units from miles to kilometers: Geolocation_Directions.pb
- changed Marker distance from meters to kilometers: Geolocation_TwoPoints.pb
- added location and elevation data to the Marker popup window: Geolocation_TwoPoints.pb

Re: Geolocation via WebGadget

Posted: Tue Sep 20, 2016 2:42 am
by JHPJHP
Updated:
- added 2 OSX examples (modified from the Windows examples)
-- Geolocation_Directions_OSX.pb
--- show directions between two locations (draggable Markers)
--- Travel Mode options (Driving, Walking, Bicycling, Transit)
-- Geolocation_TwoPoints_OSX.pb
--- map the distance between two locations
--- Default Zoom option

Re: Geolocation via WebGadget

Posted: Wed Sep 21, 2016 3:01 pm
by JHPJHP
Updated:
- added 1 OSX example (modified from the Windows example)
-- Geolocation_OSX.pb
--- execute a Geolocation by IP4 address or URL (root address)
--- Default Zoom option
--- geolocate your current IP address

The following two posts were helpful in getting the OSX examples working:
- [ wilbert ] :: http://www.purebasic.fr/english/viewtop ... 30#p494430
- [ rodego ] :: http://purebasic.fr/english/viewtopic.p ... 42#p343542

Image

Re: Geolocation via WebGadget

Posted: Sat Sep 24, 2016 10:36 am
by uweb
Thank You for sharing.
But in Geolocation_Directions and Geolocation I see only the Toolbar. The rest keeps white.
Tested with Win7 x64 and PB 5.42 and 5.50 as x86 and x64. There are no error messages.
Any hints?