New methods:
- Added ``sample_points`` method to sample random points from Polygon or LineString
geometries (2860).
- New ``hilbert_distance()`` method that calculates the distance along a Hilbert curve
for each geometry in a GeoSeries/GeoDataFrame (2297).
- Support for sorting geometries (for example, using ``sort_values()``) based on
the distance along the Hilbert curve (2070).
- Added ``get_coordinates()`` method from shapely to GeoSeries/GeoDataframe (2624).
- Added ``minimum_bounding_circle()`` method from shapely to GeoSeries/GeoDataframe (2621).
- Added `minimum_bounding_radius()` as GeoSeries method (2827).
Other new features and improvements:
- The Parquet and Feather IO functions now support the latest 1.0.0-beta.1 version
of the GeoParquet specification (<geoparquet.org>) (2663).
- Added support to fill missing values in `GeoSeries.fillna` via another `GeoSeries` (2535).
- Support specifying ``min_zoom`` and ``max_zoom`` inside the ``map_kwds`` argument for ``.explore()`` (2599).
- Added support for append (``mode="a"`` or ``append=True``) in ``to_file()``
using ``engine="pyogrio"`` (2788).
- Added a ``to_wgs84`` keyword to ``to_json`` allowing automatic re-projecting to follow
the 2016 GeoJSON specification (416).
- ``to_json`` output now includes a ``"crs"`` field if the CRS is not the default WGS84 (1774).
- Improve error messages when accessing the `geometry` attribute of GeoDataFrame without an active geometry column
related to the default name `"geometry"` being provided in the constructor (2577)
Deprecations and compatibility notes:
- Added warning that ``unary_union`` will return ``'GEOMETRYCOLLECTION EMPTY'`` instead
of None for all-None GeoSeries. (2618)
- The ``query_bulk()`` method of the spatial index `.sindex` property is deprecated
in favor of ``query()`` (2823).
Bug fixes:
- Ensure that GeoDataFrame created from DataFrame is a copy, not a view (2667)
- Fix mismatch between geometries and colors in ``plot()`` if an empty or missing
geometry is present (2224)
- Escape special characters to avoid TemplateSyntaxError in ``explore()`` (2657)
- Fix `to_parquet`/`to_feather` to not write an invalid bbox (with NaNs) in the
metadata in case of an empty GeoDataFrame (2653)
- Fix `to_parquet`/`to_feather` to use correct WKB flavor for 3D geometries (2654)
- Fix `read_file` to avoid reading all file bytes prior to calling Fiona or
Pyogrio if provided a URL as input (2796)
- Fix `copy()` downcasting GeoDataFrames without an active geometry column to a
DataFrame (2775)
- Fix geometry column name propagation when GeoDataFrame columns are a multiindex (2088)
- Fix `iterfeatures()` method of GeoDataFrame to correctly handle non-scalar values
when `na='drop'` is specified (2811)
- Fix issue with passing custom legend labels to `plot` (2886)
Notes on (optional) dependencies:
- GeoPandas 0.13 drops support pandas 1.0.5 (the minimum supported
pandas version is now 1.1). Further, the minimum required versions for the listed
dependencies have now changed to shapely 1.7.1, fiona 1.8.19, pyproj 3.0.1 and
matplotlib 3.3.4 (2655)