Commit graph

529 commits

Author SHA1 Message Date
Alexey Pelykh
91ae154dd8 Merge branch 'master' of ssh://github.com/osmandapp/Osmand 2015-02-03 11:13:19 +02:00
Alexey Pelykh
3ec9d6dbd2 Proper gradle 2015-02-03 11:13:11 +02:00
Hans-Christoph Steiner
859595267e add more kinds of Google URLs for testing
This includes some valid Google Maps links that cause problems with the new
`parseGoogleMapsPath()` method.
2015-02-03 00:29:43 +01:00
Hans-Christoph Steiner
34ecdafc5d GeoParsedPoint normalize query string format as plain, not URL-encoded
There were parts of this code that were sticking in a URL-encoded query
string into GeoParsedPoint, and other parts that were putting in a regular
non-URL-encoded String.  This meant that URLs with an & in the query string
encoded as %26 were not being properly parsed, since & is used to split up
the query string.  That also makes it impossible to output a properly
encoded URI from getGeoUriString().
2015-02-03 00:28:45 +01:00
Hans-Christoph Steiner
124d48cd6e add various unparsable short links as tests 2015-02-02 22:53:05 +01:00
Hans-Christoph Steiner
7cb58ec540 also parse maps.apple.com links, the query string includes lat/long/zoom/etc
https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
2015-02-02 22:53:05 +01:00
Hans-Christoph Steiner
1c4ad908da handle all Google country-specific domains, i.e. google.at, google.ru, etc.
https://en.wikipedia.org/wiki/List_of_Google_domains
2015-02-02 22:53:05 +01:00
Hans-Christoph Steiner
59c34b350a improve Yandex link parsing
* also handle maps.yandex.com URLs
* properly handle unparsable short links (i.e. don't crash or return results)
* include text= as Label
2015-02-02 22:53:05 +01:00
Hans-Christoph Steiner
897d6ba387 only output coords from Yandex URL if the full ll= string matches
This just makes sure that there is a full lat/lon match before outputing.
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
90c1b8a8e0 only parse query string if it is used
Not all location URLs have useful information in the query string, so only
parse it if it is used in the section for a given hostname.

Also, rename queryMap to params for consistency.
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
4e5fa43f98 claim location URLs from QQ Map by Tencent
closes https://dev.guardianproject.info/issues/4394
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
9b77f6fa90 claim location URLs from Nokia HERE
closes https://dev.guardianproject.info/issues/4399
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
d34d341d65 keep Uri "path" intact during parsing for consistant regexes
By not modifying "path" from what Uri.getPath() returns, it keeps the
pattern matching consistent since the contents of "path" will always be the
same as Uri.getPath(), and what is visible in the URI itself.
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
2771da35de GeoPointParserUtil.getQueryParameters() to return Map of all parameters
This parses out all of the parameters in the query string for both http:
and geo: URIs.  This will only work on URIs with valid syntax, so it will
not work on URIs that do odd things like have a query string in the
fragment, like this one:

http://www.amap.com/#!poi!!q=38.174596,114.995033|2|%E5%AE%BE%E9%A6%86&radius=1000
2015-02-02 22:53:04 +01:00
Hans-Christoph Steiner
3d106d00b7 support parsing amap.com URLs
amap.com aka autonavi is a popular mapping service in China.
2015-02-02 22:53:04 +01:00
Alexey Pelykh
75a0c03e40 Fix build 2015-02-02 18:15:28 +02:00
Alexey Pelykh
ac344f8e20 Merge branch 'master' of ssh://github.com/osmandapp/Osmand 2015-02-02 17:56:08 +02:00
Alexey Pelykh
6d6d3631f3 Fix 2015-02-02 17:54:43 +02:00
Hans-Christoph Steiner
8155e749bb use Locale.ENGLISH to format numbers for geo: links
Some locales do not use 0-9 as the digits, such as Arabic and sometimes
Chinese.  Using those numerals in a geo: URI probably would not work.
2015-02-02 16:08:30 +01:00
Hans-Christoph Steiner
3db16680b4 GeoParsedPoint.getGeoUriString() to output the data as a geo: URI
Output the data in the GeoParsedPoint as a geo: URI (http://geouri.org)
2015-02-02 16:08:30 +01:00
Hans-Christoph Steiner
58485d8ba9 rename GeoParsedPoint's named point var to "Label" after Google standard
This outlines the named point format of a geo: URI:
https://developer.android.com/guide/components/intents-common.html#Maps
2015-02-02 16:08:30 +01:00
Hans-Christoph Steiner
6f2e0029a5 remove debug message from GeoPointParserUtil.areCloseEnough() 2015-02-02 16:08:30 +01:00
Victor Shcherb
567de5806a Update geo parse utility 2015-02-02 09:25:15 +01:00
Victor Shcherb
015cf7fc47 Update map poi types 2015-01-31 15:28:08 +01:00
vshcherb
cc9f727789 Merge pull request #1045 from eighthave/update-url-parsing
Update url parsing
2015-01-27 14:24:06 +01:00
Victor Shcherb
ba358e658f Merge branch 'master' of github.com:osmandapp/Osmand 2015-01-26 21:45:46 +01:00
Victor Shcherb
755b56a97b Fix map creator 2015-01-26 21:45:07 +01:00
Denis
4b65f295d6 Added new tab control 2015-01-26 13:30:38 +02:00
Victor Shcherb
1568f9b598 Fix ruler 2015-01-25 22:56:48 +01:00
Hans-Christoph Steiner
9bb03894a5 generate OpenStreetMap shortlinks using current char set (~ instead of @)
OpenStreetMap has changed the shortlink charset to use ~ instead of @ to be
support services like Twitter where @ has meaning.  OpenStreetMap still will
parse the old format, but only generates new shortlinks using "~".  This
commit changes OsmAnd to have the same behavior.

References:
https://wiki.openstreetmap.org/wiki/Shortlink#Code_for_encoding_.26_decoding
e84b2bd22f/app/assets/javascripts/application.js (L188)

---------------- OsmAnd-java/src/net/osmand/util/MapUtils.java ----------------
2015-01-21 11:25:51 +01:00
Hans-Christoph Steiner
50eed92015 parse lat/lon/zoom from OpenStreetMap shortlinks
This is a nice format of shortlink since it uses a public, offline algorithm
to generate them.  So Osmand can get what it needs from the shortlink
without going online.

https://wiki.openstreetmap.org/wiki/Shortlink
2015-01-21 11:25:51 +01:00
Hans-Christoph Steiner
2537d92a6a update MapUtils.decodeShortLinkString() to also parse zoom
This method is used to parse the custom OpenStreetMap shortlink algorithm
that encodes lat, lon, and zoom.  The previous version,
MapUtils.decodeShortLocString(), only parsed lat, lon from the shortlink.
2015-01-21 11:25:51 +01:00
Hans-Christoph Steiner
147f2adf05 add BaiduMap as a URL pattern (http://map.baidu.com)
This is a mapping service that is popular in China.
2015-01-21 11:00:46 +01:00
Hans-Christoph Steiner
baf25cbb14 include test lat/lon to 5 decimal places since that's the common format
This makes the test more realistic, since most services are using at least
this much accuracy.
2015-01-21 11:00:46 +01:00
Hans-Christoph Steiner
32f7cccd0f rework OpenStreetMap URL parsing to handle current formats
It seems this code is quite out of date, because none of the URL formats
listed in the tests seem to work.  This commit updates the URL formats in
the tests, then makes all of them parse properly.  It also changes the
parsing technique, leveraging java.net.URL's built-in parsing abilities to
assist.  Also, I plan on adding a lot more URL formats, so the current code
structure made it very difficult to add to.  So each service will be split
out into its own section, starting here.
2015-01-21 11:00:46 +01:00
Hans-Christoph Steiner
7729aa7350 remove scheme arg from GeoPointParserUtil.parse(), java.net.URI provides it
Since the first step in parse() is to create a URI instance, the scheme
should come from URI.getScheme() instead of an arg.
2015-01-21 11:00:46 +01:00
Hans-Christoph Steiner
01bb7d091f split geo: URL creation to MapUtils.buildGeoUrl(lat, lon, z)
This follow the pattern set by MapUtils.buildShortOsmUrl().
2015-01-21 11:00:46 +01:00
Hans-Christoph Steiner
c54d8d47e8 use HTTPS URL for sharing location
In order to maintain privacy when sharing location, this changes the shared
location link to use HTTPS, thereby hiding the location info from anyone
who might be snooping on the WiFi, ISP, internet, etc.

Unfortunately, http://osm.org does not yet work with HTTPS, but the
standard OSM URLs are short enough to fit into a text message. They are
planning on supporting https://osm.org in the future:
https://github.com/openstreetmap/operations/issues/2
2015-01-21 11:00:46 +01:00
Victor Shcherb
0b6738e356 Fix errors 2015-01-20 23:32:35 +01:00
Hans-Christoph Steiner
2da1458999 add a preference to allow user to set a network proxy
Some networks require a proxy to get internet beyond the firewall, and
proxies are also useful for channeling all traffic through circumvention
and privacy proxies like Tor, I2P, Psiphon, etc.  In places where the
connection to download tiles might be blocked, using a proxy can give the
user access.
2015-01-20 16:18:46 +01:00
Hans-Christoph Steiner
41f356a11a use HTTPS where supported, and on Gingerbread and above (i.e. not android-9)
To increase user privacy, especially with traffic that includes sensitive
information like location and tracking markers, HTTPS should be used
whenever possible.  It seems that HTTPS is broken for a lot of sites on
versions older than android-10/Gingerbread, so HTTPS is not used on those
old platforms.
2015-01-20 16:18:46 +01:00
Victor Shcherb
ca4b4e14c8 Update poi filter types 2015-01-19 22:32:27 +01:00
Victor Shcherb
837c1f8f04 Add support restriction via way 2015-01-16 01:53:19 +01:00
Victor Shcherb
660ee62f71 Fix small issues 2015-01-15 03:17:44 +01:00
Victor Shcherb
1756e39616 Update routes 2015-01-15 02:42:33 +01:00
Victor Shcherb
774cf6f92c Fix addr:flats 2015-01-13 23:14:09 +01:00
Victor Shcherb
80bbf423ca Reimplement turn:lanes merge 2015-01-13 10:25:56 +01:00
Victor Shcherb
eaa25f3daa Update zoom animation and add zoom fraction for autozoom (don't change density in autozoom). Add limit autozoom for different drive options 2015-01-13 00:04:08 +01:00
Victor Shcherb
e55a1d7b8f Update rendering types parser 2015-01-09 00:10:52 +01:00
Victor Shcherb
b442252e0c Add dependent rendering attribute 2015-01-08 22:53:25 +01:00