Recent Releases of geopy
geopy - 2.4.0
New Features
- New geocoder:
.Woosmap. Contributed by galela. (#541) - New geocoder:
.Geokeo. Contributed by Geokeo. (#490)
Breaking Changes
- Removed Algolia Places geocoder: the service is shut down. Contributed by mtmail. (#547)
Packaging Changes
- Add support for Python 3.12. (#559)
- Update maintainer email.
- GitHub releases are now signed with GPG. (#550)
- tests: switch from httpbin.org to httpbingo.org. (#551)
- tests: use tox
allowlist_externalsinstead ofwhitelist_externals. Contributed by galela. (#540)
Bugfixes
- RequestsAdapter: use system CA store by default instead of
certifi. (#558) .DataBC: update service domain and endpoint. Contributed by nickpcrogers. (#557)
Code Improvements
- Move hardcoded domains to
__init__args for all geocoders.
- Python
Published by KostyaEsmukov over 2 years ago
geopy - 2.3.0
New Features
.MapBox: addrefererparam to allow restricted api_keys. Contributed by Dennis Stritzke. (#501).MapBox: addlanguageparam togeocode. Contributed by Dennis Stritzke. (#503).Distance: add floor division + right multiplication operators. (#485).Distance: make hashable. (#485).Nominatim: addnamedetailsparam toreverse. (#525).Pelias: addcountriesparam togeocode. (#504).GoogleV3: pass the originalerror_messageto exceptions. (#398)
Packaging Changes
- Drop support for Python 3.5 and 3.6.
- Add support for Python 3.10 and 3.11.
- Relax geographiclib upper version constraint to allow 2.x. Contributed by David Hotham. (#520)
- Raise geographiclib lower version constraint to 1.52 to fix possible
ValueErrorin.distance.geodesicdue to the floating point inaccuracy. (#466) - Move static metadata from
setup.pytosetup.cfg.
Deprecations
.Pelias: deprecatecountry_biasparam, usecountriesinstead. (#504).IGNFrance: authentication is no longer accepted by the API, so passing any credentials to the geocoder class has been deprecated. These arguments should be removed. (#496)
Bugfixes
- Fix possible
TypeErrorthrown by.RequestsAdapteron destruction. Contributed by Philip Kahn. (#488) .ArcGIS: get address from LongLabel if Address is empty.- All geocoders: fix unexpected scientific point format for coordinates near zero in reverse geocoding. (#511)
.BANFrance: fix broken reverse (it looks like their API has changed in a backwards-incompatible way: thelngquery arg has been renamed tolon)..IGNFrance: fix broken geocoder due to removal of authentication in their API. (#496)
Docs Improvements
- Add url to the GIS Stack Exchange geopy tag. Contributed by Taras Dubrava. (#516).
.GeocodeEarth: add docs and pricing urls. Contributed by Julian Simioni. (#505).
- Python
Published by KostyaEsmukov over 3 years ago
geopy - 2.2.0
New Features
.OpenCage: addedannotationsparam. Contributed by mtmail. (#464).Photon: addedbboxparam. Contributed by Holger Bruch. (#472)- New geocoder:
.Geocodio. Contributed by Jon Duckworth. (#468) - New geocoder:
.HereV7. Contributed by Pratheek Rebala. (#433) - New geocoder:
.What3WordsV3. Contributed by Saïd Tezel. (#444) - New error class:
.exc.GeocoderRateLimited. This error extends.exc.GeocoderQuotaExceededand is now raised instead of it for HTTP 422 error code. (#479) .AdapterHTTPError: addedheadersattribute. (#479)
Breaking Changes
- Removed GeocodeFarm class: the service is very unstable. (#445)
Deprecations
.GoogleV3has been moved fromgeopy.geocoders.googlev3module togeopy.geocoders.google. The old module is still present for backwards compatibility, but it will be removed in geopy 3. (#483)
Bugfixes
.OpenCage: improved error handling by using the default errors map (e.g. to raise.exc.GeocoderQuotaExceededinstead of.exc.GeocoderQueryErrorfor HTTP 402 error). (#479)
Code Improvements
.Photon: updated domain. Contributed by yrafalin. (#481).IGNFrance: removed redundant check. Contributed by Miltos. (#469)- Changed default exception type for HTTP code 408: now it is raised as
.exc.GeocoderTimedOutinstead of a more generic.exc.GeocoderServiceError. (#479) - :mod:
geopy.exc: extend more specific built-in exceptions where appropriate: classes.ConfigurationError,.GeocoderQueryError,.GeocoderNotFoundnow extendValueError;.GeocoderRateLimitedand.GeocoderUnavailableextendIOError;.GeocoderTimedOutextendsTimeoutError. (#484)
Docs Improvements
- Be more explicit in lat lon ordering. Contributed by Mateusz Konieczny. (#476)
- Added tests for geocoders' signatures (to ensure that all parameters are documented) and fixed docstrings which didn't pass them. (#480)
- Added docs for
.Distanceclass and :meth:.Distance.destinationmethod (#473)
- Python
Published by KostyaEsmukov over 4 years ago
geopy - 2.1.0
New Features
- Add support for leading plus sign in the
.Pointconstructor. Contributed by Azimjon Pulatov. (#448)
Breaking Changes
.GoogleV3: change missingapi_keywarning to an error. (#450)
Bugfixes
- Fixed an undocumented breaking change in geopy 2.0.0, where
the
.Distanceclass has become abstract, thus it could no longer be used for unit conversions. (#435) .Photonincorrectly treated 0.0 coordinate as an empty response. Contributed by Mateusz Konieczny. (#439).Nominatim: fix TypeError on emptyreverseresult. (#455)
Docs Improvements
- Add Python 3.9 to the list of supported versions.
.Bing: changepostalcodetopostalCode. Contributed by zhongjun-ma. (#424).Nominatim: better describe what is returned in addressdetails. Contributed by Mateusz Konieczny. (#429).Nominatim: better describeviewboxparam behavior. Contributed by Hannes. (#454).Yandex: remove attention block about requiring an API key.
- Python
Published by KostyaEsmukov about 5 years ago
geopy - 2.0.0
geopy 2.0 is a major release with lots of cleanup and inner refactorings. The public interface of the library is mostly the same, and the set of supported geocoders didn't change.
If you have checked your code on the latest 1.x release with enabled
warnings (i.e. with -Wd key of the python command) and fixed
all of them, then it should be safe to upgrade.
New Features
geopy.adaptersmodule. Previously all geocoders usedurllibfor HTTP requests, which doesn't support keepalives. Adapters is a new mechanism which allows to use other HTTP client implementations.
There are 3 implementations coming out of the box:
geopy.adapters.RequestsAdapter-- usesrequestslibrary which supports keepalives (thus it is significantly more effective thanurllib). It is used by default ifrequestspackage is installed.geopy.adapters.URLLibAdapter-- usesurllib, basically it provides the same behavior as in geopy 1.x. It is used by default ifrequestspackage is not installed.geopy.adapters.AioHTTPAdapter-- usesaiohttplibrary.- Added optional asyncio support in all geocoders via
.AioHTTPAdapter, see the newAsync Modedoc section. .AsyncRateLimiter-- an async counterpart of.RateLimiter..RateLimiteris now thread-safe.
- Added optional asyncio support in all geocoders via
Packaging Changes
- Dropped support for Python 2.7 and 3.4.
New extras:
geopy[requests]forgeopy.adapters.RequestsAdapter.geopy[aiohttp]forgeopy.adapters.AioHTTPAdapter.
Breaking Changes
geopy.distancealgorithms now raiseValueErrorfor points with different altitudes, because altitude is ignored in calculations.- Removed
geopy.distance.vincenty, usegeopy.distance.geodesicinstead. timeout=Nonenow disables request timeout, previously a default timeout has been used in this case.- Removed
GoogleV3.timezone, use.GoogleV3.reverse_timezoneinstead. - Removed
format_stringparam from all geocoders. SeeSpecifying Parameters Oncedoc section for alternatives. exactly_one's default is nowTruefor all geocoders and methods.- Removed service-specific request params from all
__init__methods of geocoders. Pass them to the correspondinggeocode/reversemethods instead. - All bounding box arguments now must be passed as a list of two Points. Previously some geocoders accepted unique formats like plain strings and lists of 4 coordinates -- these values are not valid anymore.
.GoogleV3.reverse_timezoneused to allow numericat_timevalue. Passdatetimeinstances instead.reversemethods used to bypass the query if it couldn't be parsed as a.Point. Now aValueErroris raised in this case..Locationand.Timezoneclasses no longer accept None forpointandrawargs..Nominatimnow raisesgeopy.exc.ConfigurationErrorwhen used with a default or sample user-agent..Pointnow raises aValueErrorif constructed from a single number. A zero longitude must be explicitly passed to avoid the error.- Most of the service-specific arguments of geocoders now must be passed as kwargs, positional arguments are not accepted.
- Removed default value
Nonefor authentication key arguments of.GeoNames,.OpenMapQuestand.Yandex. parse_*methods in geocoders have been prefixed with_to explicitly mark that they are private.
Deprecations
.Nominatimhas been moved fromgeopy.geocoders.osmmodule togeopy.geocoders.nominatim. The old module is still present for backwards compatibility, but it will be removed in geopy 3.
- Python
Published by KostyaEsmukov over 5 years ago
geopy - 1.23.0
This is the last feature release for the 1.x series, as geopy 2.0 has been released. The 1.x series will not receive any new features or bugfixes unless explicitly asked on the issue tracker.
ADDED:
Units Conversiondocs section.ADDED: Docs now explicitly clarify that geocoding services don't consider altitudes. (#165)
ADDED:
Point.format_unicodemethod. It was always present as__unicode__magic for Python 2.7, and now it can be accessed as a public method.ADDED:
geopy.__version_info__tuple which can be used to dynamically compare geopy version.ADDED: pytest
--skip-tests-requiring-internetswitch (might be useful for downstream package maintainers). (#413)CHANGED: Points with different altitudes now emit a warning in distance computations. In geopy 2.0 the warning would become an exception. (#387)
CHANGED: Improved
Pointdocs: added missing public methods, added more examples.CHANGED:
Nominatimstarted emitting warnings for a number of sample user agents mentioned in the docs, such asspecify_your_app_name_here.FIXED:
IGNFranceignored proxies with username + password auth. (#289)
- Python
Published by KostyaEsmukov over 5 years ago
geopy - 2.0.0rc1
geopy 2.0 is a major release with lots of cleanup and inner refactorings. The public interface of the library is mostly the same, and the set of supported geocoders didn't change.
If you have checked your code on the latest 1.x release with enabled
warnings (i.e. with -Wd key of the python command) and fixed
all of them, then it should be safe to upgrade.
New features
geopy.adaptersmodule. Previously all geocoders usedurllibfor HTTP requests, which doesn't support keepalives. Adapters is a new mechanism which allows to use other HTTP client implementations.
There are 3 implementations coming out of the box:
geopy.adapters.RequestsAdapter-- usesrequestslibrary which supports keepalives (thus it is significantly more effective thanurllib). It is used by default ifrequestspackage is installed.geopy.adapters.URLLibAdapter-- usesurllib, basically it provides the same behavior as in geopy 1.x. It is used by default ifrequestspackage is not installed.geopy.adapters.AioHTTPAdapter-- usesaiohttplibrary.- Added optional asyncio support in all geocoders via
.AioHTTPAdapter, see the newAsync Modedoc section. .AsyncRateLimiter-- an async counterpart of.RateLimiter..RateLimiteris now thread-safe.
- Added optional asyncio support in all geocoders via
Packaging changes
- Dropped support for Python 2.7 and 3.4.
New extras:
geopy[requests]forgeopy.adapters.RequestsAdapter.geopy[aiohttp]forgeopy.adapters.AioHTTPAdapter.
Chores
geopy.distancealgorithms now raiseValueErrorfor points with different altitudes, because altitude is ignored in calculations.- Removed
geopy.distance.vincenty, usegeopy.distance.geodesicinstead. timeout=Nonenow disables request timeout, previously a default timeout has been used in this case.- Removed
GoogleV3.timezone, use.GoogleV3.reverse_timezoneinstead. - Removed
format_stringparam from all geocoders. SeeSpecifying Parameters Oncedoc section for alternatives. exactly_one's default is nowTruefor all geocoders and methods.- Removed service-specific request params from all
__init__methods of geocoders. Pass them to the correspondinggeocode/reversemethods instead. - All bounding box arguments now must be passed as a list of two Points. Previously some geocoders accepted unique formats like plain strings and lists of 4 coordinates -- these values are not valid anymore.
.GoogleV3.reverse_timezoneused to allow numericat_timevalue. Passdatetimeinstances instead.reversemethods used to bypass the query if it couldn't be parsed as a.Point. Now aValueErroris raised in this case..Locationand.Timezoneclasses no longer accept None forpointandrawargs..Nominatimnow raisesgeopy.exc.ConfigurationErrorwhen used with a default or sample user-agent..Pointnow raises aValueErrorif constructed from a single number. A zero longitude must be explicitly passed to avoid the error.- Most of the service-specific arguments of geocoders now must be passed as kwargs, positional arguments are not accepted.
- Removed default value
Nonefor authentication key arguments of.GeoNames,.OpenMapQuestand.Yandex. parse_*methods in geocoders have been prefixed with_to explicitly mark that they are private.
- Python
Published by KostyaEsmukov over 5 years ago
geopy - 1.22.0
ADDED:
AlgoliaPlacesgeocoder. Contributed by Álvaro Mondéjar. (#405)ADDED:
BaiduV3geocoder. (#394)ADDED:
MapQuestgeocoder. Contributed by Pratheek Rebala. (#399)ADDED:
MapTilergeocoder. Contributed by chilfing. (#397)ADDED:
Nominatim-based geocoders:zoomparameter has been added to thereversemethod. Contributed by David Mueller. (#406)ADDED:
GoogleV3added support for lists incomponentsparam which allows to specify multiple components with the same name. Contributed by Pratheek Rebala. (#409)CHANGED: Updated links to Nominatim documentation. Contributed by Sarah Hoffmann. (#403)
CHANGED:
Yandexnow issues a deprecation warning whenlangparameter is specified in__init__.langshould be passed togeocodeandreverseinstead. (#350)CHANGED:
format_stringparam has been marked as deprecated in all geocoders and will be removed in geopy 2.0. See the newSpecifying Parameters Oncedoc section for alternatives.FIXED:
IGNFranceincorrectly processed empty results:geocodehas been raising anIndexError,reversewas returning an empty list. Now they both returnNone. (#244)FIXED:
TomTomgeocoder has been raisingGeocoderInsufficientPrivilegesexception for rate limiting errors instead ofGeocoderQuotaExceeded.
- Python
Published by KostyaEsmukov almost 6 years ago
geopy - 1.21.0
ADDED:
HEREgeocoder now supports the new API KEY authentication method. The old one is marked as deprecated and now issues a warning. Contributed by deeplook. (#388)ADDED:
Nominatim-based geocoders:featuretypeparameter has been added to thegeocodemethod. Contributed by Sergio Martín Morillas. (#365)ADDED:
Nominatim-based geocoders:namedetailsparameter has been added to thegeocodemethod. Contributed by enrique a. (#368)ADDED:
Pelias:languageparameter has been added to thegeocodeandreversemethods. Contributed by Armin Leuprecht. (#378)CHANGED:
Yandexgeocoder started to require API key for all requests since September 2019, so a warning asking to specify a key has been added which is issued when API key is missing.CHANGED (packaging): sdist now contains tests.
FIXED: Updated link to
TomTomSearch API documentation. Contributed by Przemek Malolepszy. (#362)FIXED: Occasional
KeyError('city')inGeolake. Contributed by Dmitrii K. (#373)
- Python
Published by KostyaEsmukov about 6 years ago
geopy - 1.20.0
FIXED:
MapBox'sgeocodemethod was ignoring theexactly_oneparameter. Contributed by TheRealZeljko. (#358)FIXED: The resulting
Location'srawattribute inMapBoxerroneously contained a single string instead of a full service response. This might be considered a breaking change (although it's unlikely that the previousrawvalue was usable at all). Contributed by Sergey Lyapustin and TheRealZeljko. (#354)
- Python
Published by KostyaEsmukov about 6 years ago
geopy - 1.19.0
ADDED:
GoogleV3:place_idarg has been added to thegeocodemethod. Contributed by Mesut Öncel. (#348)ADDED:
Geolake,GeoNames,MapBox,OpenCage,OpenMapQuest,NominatimandPickPointgeocoders now also accept Python lists of countries instead of just a single string. (#349)CHANGED:
geocode-specific args have been moved togeocodemethods from__init__, and the corresponding__init__args has been deprecated. The affected geocoders are:GeocodeEarth,GeoNames,OpenMapQuest,Nominatim,Pelias,PickPoint,LiveAddress. (#350)FIXED:
OpenCage'scountryarg was not respected. Contributed by Sebastian Illing. (#342)FIXED:
GoogleV3has erroneously been issuing a warning about a missing api key when using premier. Contributed by Mike Hansen. (#345)
- Python
Published by KostyaEsmukov almost 7 years ago
geopy - 1.18.1
FIXED:
GeoNames.reverse_timezonedidn't process errors returned by API and instead was always raising obscureKeyErrorexceptions.FIXED:
GeoNames.reverse_timezoneraisedKeyErrorfor points which don't have an assigned Olson timezone ID (e.g. Antarctica). Now a validgeopy.Timezoneis returned for such, where pytz timezone is created aspytz.FixedOffset.FIXED:
GoogleV3.reverse_timezoneraisedKeyErrorfor points which don't have an assigned Olson timezone ID (e.g. Antarctica). NowNoneis returned for such requests, as Google doesn't provide any meaningful data there.
- Python
Published by KostyaEsmukov about 7 years ago
geopy - 1.18.0
The work on geopy 2.0 has started, see the new geopy 2.0 doc section
for more info. geopy 2.0 will drop support for Python 2.7 and 3.4.
To ensure a smoother transition from 1.x to 2.0, make sure to check
your code with warnings enabled (i.e. run python with the -Wd
switch).
ADDED: Geolake geocoder. Contributed by Yorick Holkamp. (#329)
ADDED: BANFrance (Base Adresse Nationale) geocoder. Contributed by Sébastien Barré. (#336)
ADDED: TomTom and AzureMaps:
languageparam has been added to thereversemethod.ADDED: Geonames geocoder now supports both
findNearbyPlaceNameandfindNearbyreverse geocoding methods, as chosen by a newfind_nearby_typeparameter of thereversemethod. Contributed by svalee. (#327)ADDED: Geonames geocoder now supports returning a timezone for a particular
Pointvia a newreverse_timezonemethod. Contributed by svalee. (#327)ADDED: Geonames geocoder's
reversemethod now supports new parameters:langandfeature_code. Contributed by svalee. (#327)ADDED: Geonames now supports
schemeparameter. Although the service itself doesn't yet supporthttps, it will be possible to enablehttpsvia this new parameter as soon as they add the support, without waiting for a new release of geopy.CHANGED: Geonames now builds
Location.addressdifferently: previously it looked likeKreuzberg, 16, DE, now it looks likeKreuzberg, Berlin, Germany.CHANGED: All warnings now specify a correct
stacklevelso that the warnings point at the place in your code that triggered it, instead of the geopy internals.CHANGED: All warnings with
UserWarningcategory which will be removed in geopy 2.0 now have theDeprecationWarningcategory.CHANGED:
geopy.extra.rate_limiter.RateLimiteris no longer an experimental API.CHANGED:
GoogleV3.timezonenow issues a deprecation warning whenat_timeis a number instead of adatetime. In geopy 2.0 this will become an exception.CHANGED:
GoogleV3.timezonemethod is now deprecated in favor ofGoogleV3.reverse_timezone, which works exactly the same, except that it returns a newgeopy.Timezoneobject, which is a wrapper for pytz timezone similarly togeopy.Location. This object also contains a raw response of the service.GoogleV3.timezonewill be removed in geopy 2.0. (#332)CHANGED:
Pointconstructor silently ignored the tail of the string if it couldn't be parsed, now it is not ignored. For example,75 5th Avenue, NYC, USAwas parsed asPoint(75, 5), but now it would raise aValueErrorexception.FIXED:
GoogleV3.timezonemethod didn't process errors returned by the API.
- Python
Published by KostyaEsmukov about 7 years ago
geopy - 1.17.0
ADDED: OpenMapQuest how inherits from Nominatim. This adds support for all parameters and queries implemented in Nominatim (such as reverse geocoding). (#319)
ADDED: Nominatim-based geocoders now support an
extratagsoption. Contributed by Oleg. (#320)ADDED: Mapbox geocoder. Contributed by William Hammond. (#323)
ADDED: ArcGIS now supports custom
domainandauth_domainvalues. Contributed by Albina. (#325)ADDED: Bodies of unsuccessful HTTP responses are now logged with
INFOlevel.CHANGED: Reverse geocoding methods now issue a warning for string queries which cannot be used to construct a Point instance. In geopy 2.0 this will become an exception.
CHANGED: GoogleV3 now issues a warning when used without an API key.
CHANGED: Parameters accepting bounding boxes have been unified to accept a pair of diagonal points across all geopy. Previous formats are still supported (until geopy 2.0) but now issue a warning when used.
CHANGED: Path part of the API urls has been moved to class attributes in all geocoders, which allows to override them in subclasses. Bing and What3Words now store api urls internally differently.
FIXED: TomTom and AzureMaps have been passing boolean values for
typeaheadin a wrong format (i.e.0and1instead offalseandtrue).
- Python
Published by KostyaEsmukov over 7 years ago
geopy - 1.16.0
ADDED:
geopy.extra.rate_limiter.RateLimiterclass, useful for bulk-geocoding a pandas DataFrame. See also the newUsage with Pandasdoc section. (#317)CHANGED: Nominatim now issues a warning when the default user_agent is used against
nominatim.openstreetmap.org. Please always specify a custom user-agent when using Nominatim. (#316)
- Python
Published by KostyaEsmukov over 7 years ago
geopy - 1.15.0
ADDED: GeocodeEarth geocoder based on Pelias (ex-Mapzen). (#309)
ADDED: TomTom and AzureMaps (based on TomTom) geocoders. (#312)
ADDED: HERE geocoder. Contributed by deeplook. (#304)
ADDED: Baidu now supports authentication using SK via a new
security_keyoption. Contributed by tony. (#298)ADDED: Nominatim's and Pickpoint's
view_boxoption now accepts a list of Points or numbers instead of just stringified coordinates. Contributed by svalee. (#299)ADDED: Nominatim and Pickpoint geocoders now support a
boundedoption, which restricts results to the items strictly contained within theview_box. Contributed by Karimov Dmitriy. (#182)ADDED:
proxiesparam of geocoders can now accept a single string instead of a dict. See the updated docs for thegeopy.geocoders.options.default_proxiesattribute for more details. Contributed by svalee. (#300)CHANGED: Mapzen has been renamed to Pelias,
domainparameter has been made required. (#309)CHANGED: What3Words API has been updated from v1 to v2. Please note that
Location.rawresults have changed due to that. Contributed by Jonathan Batchelor. (#226)FIXED: Baidu mistakenly didn't process the returned errors correctly. Contributed by tony. (#298)
FIXED:
proxies={}didn't reset system proxies as expected.
- Python
Published by KostyaEsmukov over 7 years ago
geopy - 1.14.0
This release contains a lot of public API cleanup. Also make sure to
check out the updated docs! A new Semver doc section has been added,
explaining the geopy's policy on breaking changes.
ADDED: Nominatim geocoder now supports an
addressdetailsoption in thereversemethod. Contributed by Serphentas. (#285)ADDED: ArcGIS geocoder now supports an
out_fieldsoption in thegeocodemethod. Contributed by Jonathan Batchelor. (#227)ADDED: Yandex geocoder now supports a
kindoption in thereversemethod.ADDED: Some geocoders were missing
format_stringoption. Now all geocoders support it.ADDED:
geopy.distance.lonlatfunction for conveniently converting(x, y, [z])coordinate tuples to thePointinstances, which use(y, x, [z]). Contributed by svalee. (#282)ADDED:
geopy.geocoders.optionsobject, which allows to configure geocoder defaults (such as User-Agent, timeout, format_string) application-wide. (#288)ADDED: Support for supplying a custom SSL context. See docs for
geopy.geocoders.options.default_ssl_context. (#291)ADDED: Baidu geocoder was missing the
exactly_oneoption in itsreversemethod.ADDED: GeocodeFarm now supports a
schemeoption.CHANGED: Baidu and Yandex geocoders now use https scheme by default instead of http.
CHANGED: ArcGIS geocoder was updated to use the latest API. Please note that
Location.rawresults forgeocodehave changed a little due to that. Contributed by Jonathan Batchelor. (#227)CHANGED: Explicitly passed
timeout=Nonein geocoder calls now issues a warning. Currently it means "use geocoder's default timeout", while in geopy 2.0 it would mean "use no timeout". (#288)CHANGED: GoogleV3
geocodecall now supportscomponentswithoutquerybeing specified. (#296)CHANGED: GeoNames, GoogleV3, IGNFrance, OpenCage and Yandex erroneously had
exactly_one=Falseby default forreversemethods, which must have been True. This behavior has been kept, however a warning will be issued now unlessexactly_oneoption is explicitly specified inreversecalls for these geocoders. The default value will be changed in geopy 2.0. (#295)CHANGED: Point now throws a
ValueErrorexception instead of normalizing latitude and tolerating NaN/inf values for coordinates. (#294)CHANGED:
Vincentyusage now issues a warning.Geodesicshould be used instead. Vincenty is planned to be removed in geopy 2.0. (#293)CHANGED: ArcGIS
wkidoption forreversecall has been deprecated because it was never working properly, and it won't, due to the coordinates normalization in Point.FIXED: ArcGIS and What3Words did not respect
exactly_one=False. Now they respect it and return a list of a single location in this case.FIXED: ArcGIS was throwing an exception on empty response of
reverse. NowNoneis returned, as expected.FIXED:
GeocodeFarmwas raising an exception on empty response instead of returningNone. Contributed by Arthur Pemberton. (#240)FIXED:
GeocodeFarmhad missingLocation.addressvalue sometimes.REMOVED:
geopy.geocoders.DEFAULT_*constants (in favor ofgeopy.geocoders.options.default_*attributes). (#288)REMOVED: YahooPlaceFinder geocoder. (#283)
REMOVED: GeocoderDotUS geocoder. (#286)
- Python
Published by KostyaEsmukov almost 8 years ago
geopy - 1.13.0
ADDED: Pickpoint geocoder. Contributed by Vladimir Kalinkin. (#246)
ADDED: Bing geocoder: additional parameters for geocoding (
cultureandinclude_country_code). Contributed by Bernd Schlapsi. (#166)ADDED:
PointandLocationinstances are now picklable.ADDED: More accurate algorithm for distance computation
geopy.distance.geodesic, which is now a defaultgeopy.distance.distance. Vincenty usage is now discouraged in favor of the geodesic. This also has added a dependency of geopy ongeographiclibpackage. Contributed by Charles Karney. (#144)ADDED: Nominatim geocoder now supports a
limitoption and useslimit=1forexactly_one=Truerequests. Contributed by Serphentas. (#281)CHANGED:
Pointnow issues warnings for incorrect or ambiguous inputs. Some of them (namely not finite values and out of band latitudes) will be replaced with ValueError exceptions in the future versions of geopy. (#272)CHANGED:
Pointnow usesfmodinstead of%which results in more accurate coordinates normalization. Contributed by svalee. (#275, #279)CHANGED: When using http proxy, urllib's
install_openerwas used, which was alteringurlopencall globally. It's not used anymore.CHANGED:
Pointnow raisesValueErrorinstead ofTypeErrorwhen more than 3 arguments have been passed.FIXED:
Pointwas raising an exception when compared to non-iterables.FIXED: Coordinates of a
Pointinstance changed via__setitem__were not updating the corresponding lat/long/alt attributes.FIXED: Coordinates of a
Pointinstance changed via__setitem__were not being normalized after assignment. Note, however, that attribute assignments are still not normalized. (#272)FIXED:
Distanceinstances comparison was not working in Python3.FIXED: Yandex geocoder was sending API key with an incorrect parameter.
FIXED: Unit conversions from feet were incorrect. Contributed by scottessner. (#162)
FIXED: Vincenty destination function had an error in the formula implementation. Contributed by Hanno Schlichting. (#194)
FIXED: Vincenty was throwing UnboundLocalError when difference between the two longitudes was close to 2*pi or either of them was NaN. (#187)
REMOVED:
geopy.util.NullHandlerlogging handler has been removed.
- Python
Published by KostyaEsmukov almost 8 years ago
geopy - 1.12.0
ADDED: Mapzen geocoder. Contributed by migurski. (#183)
ADDED: GoogleV3 geocoder now supports a
channeloption. Contributed by gotche. (#206)ADDED: Photon geocoder now accepts a new
limitoption. Contributed by Mariana Georgieva.CHANGED: Use the IUGG mean earth radius for EARTH_RADIUS. Contributed by cffk. (#151)
CHANGED: Use the exact conversion factor from kilometers to miles. Contributed by cffk. (#150)
CHANGED: OpenMapQuest geocoder now properly supports
api_keyoption and makes it required.CHANGED: Photon geocoder: removed
osm_tagoption from reverse geocoding method, as Photon backend doesn't support it for reverse geocoding.FIXED: Photon geocoder was always returning an empty address.
FIXED: Yandex geocoder was returning a truncated address (the
namepart of a place was missing).FIXED: The custom
User-Agentheader was not actually sent. This also fixes broken Nominatim, which has recently banned the stock urllib user agent.FIXED:
geopy.util.get_version()function was throwing anImportErrorexception instead of returning a version string.FIXED: Docs for constructing a
geopy.point.Pointwere referencing latitude and longitude in a wrong order. Contributed by micahcochran and sjorek. (#207 #229)REMOVED: Navidata geocoder has been removed. Contributed by medecau. (#204)
- Python
Published by KostyaEsmukov almost 8 years ago
geopy - 1.11.0
ADDED: Photon geocoder. Contributed by mthh.
ADDED: Bing supports structured query parameters. Contributed by SemiNormal.
CHANGED: Geocoders send a
User-Agentheader, which by default isgeopy/1.11.0. Configure it during geocoder initialization. Contributed by sebastianneubauer.FIXED: Index out of range error with no results using Yandex. Contributed by facciocose.
FIXED: Nominatim was incorrectly sending
view_boxwhen not requested, and formatting it incorrectly. Contributed by m0zes.
- Python
Published by KostyaEsmukov almost 8 years ago
geopy - 1.10.0
- CHANGED: GeocodeFarm now uses version 3 of the service's API, which
allows use by unauthenticated users, multiple results, and
SSL/TLS. You may need to obtain a new API key from GeocodeFarm, or
use
Nonefor their free tier. Contributed by Eric Palakovich Carr. - ADDED: DataBC geocoder for use with the British Columbia government's DataBC service. Contributed by Benjamin Trigona-Harany.
- ADDED: Placefinder's geocode method now requests a timezone if the
with_timezoneparameter is true. Contributed by willr. - FIXED: Nominatim specifies a
viewboxparameter rather than the apparently deprecatedview_box.
- Python
Published by ijl almost 11 years ago
geopy - 1.9.0
- CHANGED: MapQuest geocoder removed as the API it uses is now only available to enterprise accounts. OpenMapQuest is a replacement for Nominatim-sourced data.
- CHANGED: Nominatim now uses HTTPS by default and accepts a
schemeargument. Contributed by srounet. - ADDED: Nominatim now accepts a
domainargument, which allows using a different server thannominatim.openstreetmap.org. Contributed by srounet. - FIXED: Bing was not accessible from
get_geocoder_for_service. Contributed by Adrián López.
- Python
Published by ijl about 11 years ago
geopy - 1.5.0
- ADDED: Yandex geocoder added. Contributed by htch.
- ADDED: What3Words geocoder added. Contributed by spatialbitz.
- FIXED: LiveAddress geocoder made compatible with a change in the service's
authentication. An
auth_idparameter was added to the geocoder's initialization. Contributed by Arsen Mamikonyan.
- Python
Published by ijl about 11 years ago
geopy -
- ADDED: Mapquest.reverse() method added. Contributed by Dody Suria Wijaya.
- ADDED: Bing's geocoder now accepts the optional arguments "culture", "includeNeighborhood", and "include". Contributed by oskholl.
- Python
Published by ijl over 11 years ago