20210525 The geocode command takes a supplied address and produces specific location details.
$ ml geocode bing [options] <address> -b --bing Generate Bing Maps URL. -g --google Generate Google Maps URL. -m <int> --max=<int> Maximum number of matches. -o --osm Generate Open Street Map URL. -u --url Generate Open Street Map URL.
The output, separated by commas, consists of the latitude:longitude (north/south : east/west) location, a bounding box for the region (south latitude : west longitude : north latitude : east longitude), the confidence that the identified location is a match, a match code (good, ambiguous, uphierarchy), the entity type. The remaining output is the identified address (generally including commas):
ml geocode bing --max=1 anzac parade
The output is as below, though unlike here the actual output will be on a single line for each location identified. Multiple locations are identified when the location is ambiguous.
-33.955379486083984:151.2429656982422, -34.12508010864258:151.07327270507812:-33.78567886352539:151.41265869140625, High,Ambiguous,PopulatedPlace, Anzac Parade, NSW, Australia
We control the maximum number of matches (1-20) using
(the default is 5).
A URL (universal resource locator) can be requested for a map using
either Open Street Map (preferred and the default for
--osm), Bing Maps (
--bing), or Google Maps (
ml geocode bing --url anzac parade
There are actually three matches for this address.
http://www.openstreetmap.org/?mlat=-33.955379486083984&mlon=151.2429656982422&zoom=12 http://www.openstreetmap.org/?mlat=-35.2863883972168&mlon=149.14389038085938&zoom=12 http://www.openstreetmap.org/?mlat=-35.2863883972168&mlon=149.14389038085938&zoom=12
You can copy and paste the URL into a browser or extract, for example, the second match above and browse directly to that:
xdg-open `ml geocode --url bing anzac parade | sed '2q;d'`
The sed command (the stream editor) matches the
second line sent through the pipeline (
2 is the address), prints
it by default, and then quits (q). Other lines before
2 (i.e., just
1) are processed by the second sed command
(deleted), as otherwise, by default, they would be printed. Simple
sed commands can be separated by the semicolon
;). Because we quit after the second line, no further lines get
printed. Thus this command extracts the second line from standard
input. Change 2 to 3 in the sed, for example, to
get the third line (the third match from the Bing maps command).
Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0