diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-17 04:49:30 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-17 04:49:30 +0000 |
commit | 6ce4921c9a8c94821f0e857200b5a40b4dd1c9fe (patch) | |
tree | ef719d5355057205659242f443c0149af0447292 | |
parent | e7e77428213d486e79138a129c467ae4857bb4be (diff) |
automatic import of python-flexpolyline
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-flexpolyline.spec | 495 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 497 insertions, 0 deletions
@@ -0,0 +1 @@ +/flexpolyline-0.1.0.tar.gz diff --git a/python-flexpolyline.spec b/python-flexpolyline.spec new file mode 100644 index 0000000..fe5ff3f --- /dev/null +++ b/python-flexpolyline.spec @@ -0,0 +1,495 @@ +%global _empty_manifest_terminate_build 0 +Name: python-flexpolyline +Version: 0.1.0 +Release: 1 +Summary: Flexible Polyline encoding: a lossy compressed representation of a list of coordinate pairs or triples +License: MIT +URL: https://here.com +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4d/04/ad15ba222feeeea012919eccbec65d86a91e94024541ed8ebb549b4784e0/flexpolyline-0.1.0.tar.gz +BuildArch: noarch + + +%description +# FlexPolyline + +This is a python implementation of the Flexible Polyline format. + +The polyline encoding is a lossy compressed representation of a list of coordinate pairs or +coordinate triples. It achieves that by: + +1. Reducing the decimal digits of each value. +2. Encoding only the offset from the previous point. +3. Using variable length for each coordinate delta. +4. Using 64 URL-safe characters to display the result. + +## Install + +```python +pip install flexpolyline +``` + +## Usage + +### Encoding + +#### `encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Encodes a list (or iterator) of coordinates to the corresponding string representation. See the optional parameters below for further customization. Coordinate order is `(lat, lng[, third_dim])`. +``` + +**Optional parameters** + +* `precision` - Defines how many decimal digits to round latitude and longitude to (ranges from `0` to `15`). +* `third_dim` - Defines the type of the third dimension when present. Possible values are defined in the module: `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2`. The last two values can be used in case your third dimension has a user defined meaning. +* `third_dim_precision` - Defines how many decimal digits to round the third dimension to (ranges from `0` to `15`). This parameter is ignored when `third_dim` is `ABSENT` (default). + + +#### `dict_encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Similar to the `encode` function, but accepts a list (or iterator) of dictionaries instead. Required keys are `"lat"` and `"lng"`. If `third_dim` is set, the corresponding key is expected `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + + +#### Examples + +Following is a simple example encoding a 2D poyline with 5 decimal digits of precision: + +```python +import flexpolyline as fp + +example = [ + (50.1022829, 8.6982122), + (50.1020076, 8.6956695), + (50.1006313, 8.6914960), + (50.0987800, 8.6875156), +] + +print(fp.encode(example)) +``` + +**Output**: `BFoz5xJ67i1B1B7PzIhaxL7Y`. + +Another example for the 3D case with altitude as the third coordinate: + +```python +example = [ + (50.1022829, 8.6982122, 10), + (50.1020076, 8.6956695, 20), + (50.1006313, 8.6914960, 30), + (50.0987800, 8.6875156, 40), +] + +print(fp.encode(example, third_dim=flexpolyline.ALTITUDE)) +``` + +**Output**: `BlBoz5xJ67i1BU1B7PUzIhaUxL7YU` + +### Decoding + +#### `decode(encoded_string)` + +Decodes the passed encoded string and returns a list of tuples `(lat, lng[, third_dim])`. + +#### `iter_decode(encoded_string)` + +Similar to `decode` but returns an iterator instead. + +#### `dict_decode(encoded_string)` + +Similar to `decode` but returns a list of dictionaries instead. The keys `"lat"` and `"lng"` are always present, while the third dimension key depends on the type of third dimension encoded. It can be one of the following: `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + +#### `iter_dict_decode(encoded_string)` + +Similar to `dict_decode` but returns an iterator instead. + +#### `get_third_dimension(encoded_string)` + +Returns the value corresponding to the third dimension encoded in the string. Possible values defined in the module are: `ABSENT`, `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2` + +#### Examples + +Example of decoding of a 2D polyline: + +```python +import flexpolyline as fp + +print(fp.decode("BFoz5xJ67i1B1B7PzIhaxL7Y")) +``` + +**Output**: + +``` +[ + (50.10228, 8.69821), + (50.10201, 8.69567), + (50.10063, 8.69150), + (50.09878, 8.68752) +] +``` + + +Example of decoding dicts from a 3D polyline: + +```python +import flexpolyline as fp + +print(fp.dict_decode("BlBoz5xJ67i1BU1B7PUzIhaUxL7YU")) +``` + +**Output**: + +``` +[ + {'lat': 50.10228, 'lng': 8.69821, 'alt': 10}, + {'lat': 50.10201, 'lng': 8.69567, 'alt': 20}, + {'lat': 50.10063, 'lng': 8.69150, 'alt': 30}, + {'lat': 50.09878, 'lng': 8.68752, 'alt': 40} +] +``` + + + + + + + + +%package -n python3-flexpolyline +Summary: Flexible Polyline encoding: a lossy compressed representation of a list of coordinate pairs or triples +Provides: python-flexpolyline +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-flexpolyline +# FlexPolyline + +This is a python implementation of the Flexible Polyline format. + +The polyline encoding is a lossy compressed representation of a list of coordinate pairs or +coordinate triples. It achieves that by: + +1. Reducing the decimal digits of each value. +2. Encoding only the offset from the previous point. +3. Using variable length for each coordinate delta. +4. Using 64 URL-safe characters to display the result. + +## Install + +```python +pip install flexpolyline +``` + +## Usage + +### Encoding + +#### `encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Encodes a list (or iterator) of coordinates to the corresponding string representation. See the optional parameters below for further customization. Coordinate order is `(lat, lng[, third_dim])`. +``` + +**Optional parameters** + +* `precision` - Defines how many decimal digits to round latitude and longitude to (ranges from `0` to `15`). +* `third_dim` - Defines the type of the third dimension when present. Possible values are defined in the module: `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2`. The last two values can be used in case your third dimension has a user defined meaning. +* `third_dim_precision` - Defines how many decimal digits to round the third dimension to (ranges from `0` to `15`). This parameter is ignored when `third_dim` is `ABSENT` (default). + + +#### `dict_encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Similar to the `encode` function, but accepts a list (or iterator) of dictionaries instead. Required keys are `"lat"` and `"lng"`. If `third_dim` is set, the corresponding key is expected `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + + +#### Examples + +Following is a simple example encoding a 2D poyline with 5 decimal digits of precision: + +```python +import flexpolyline as fp + +example = [ + (50.1022829, 8.6982122), + (50.1020076, 8.6956695), + (50.1006313, 8.6914960), + (50.0987800, 8.6875156), +] + +print(fp.encode(example)) +``` + +**Output**: `BFoz5xJ67i1B1B7PzIhaxL7Y`. + +Another example for the 3D case with altitude as the third coordinate: + +```python +example = [ + (50.1022829, 8.6982122, 10), + (50.1020076, 8.6956695, 20), + (50.1006313, 8.6914960, 30), + (50.0987800, 8.6875156, 40), +] + +print(fp.encode(example, third_dim=flexpolyline.ALTITUDE)) +``` + +**Output**: `BlBoz5xJ67i1BU1B7PUzIhaUxL7YU` + +### Decoding + +#### `decode(encoded_string)` + +Decodes the passed encoded string and returns a list of tuples `(lat, lng[, third_dim])`. + +#### `iter_decode(encoded_string)` + +Similar to `decode` but returns an iterator instead. + +#### `dict_decode(encoded_string)` + +Similar to `decode` but returns a list of dictionaries instead. The keys `"lat"` and `"lng"` are always present, while the third dimension key depends on the type of third dimension encoded. It can be one of the following: `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + +#### `iter_dict_decode(encoded_string)` + +Similar to `dict_decode` but returns an iterator instead. + +#### `get_third_dimension(encoded_string)` + +Returns the value corresponding to the third dimension encoded in the string. Possible values defined in the module are: `ABSENT`, `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2` + +#### Examples + +Example of decoding of a 2D polyline: + +```python +import flexpolyline as fp + +print(fp.decode("BFoz5xJ67i1B1B7PzIhaxL7Y")) +``` + +**Output**: + +``` +[ + (50.10228, 8.69821), + (50.10201, 8.69567), + (50.10063, 8.69150), + (50.09878, 8.68752) +] +``` + + +Example of decoding dicts from a 3D polyline: + +```python +import flexpolyline as fp + +print(fp.dict_decode("BlBoz5xJ67i1BU1B7PUzIhaUxL7YU")) +``` + +**Output**: + +``` +[ + {'lat': 50.10228, 'lng': 8.69821, 'alt': 10}, + {'lat': 50.10201, 'lng': 8.69567, 'alt': 20}, + {'lat': 50.10063, 'lng': 8.69150, 'alt': 30}, + {'lat': 50.09878, 'lng': 8.68752, 'alt': 40} +] +``` + + + + + + + + +%package help +Summary: Development documents and examples for flexpolyline +Provides: python3-flexpolyline-doc +%description help +# FlexPolyline + +This is a python implementation of the Flexible Polyline format. + +The polyline encoding is a lossy compressed representation of a list of coordinate pairs or +coordinate triples. It achieves that by: + +1. Reducing the decimal digits of each value. +2. Encoding only the offset from the previous point. +3. Using variable length for each coordinate delta. +4. Using 64 URL-safe characters to display the result. + +## Install + +```python +pip install flexpolyline +``` + +## Usage + +### Encoding + +#### `encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Encodes a list (or iterator) of coordinates to the corresponding string representation. See the optional parameters below for further customization. Coordinate order is `(lat, lng[, third_dim])`. +``` + +**Optional parameters** + +* `precision` - Defines how many decimal digits to round latitude and longitude to (ranges from `0` to `15`). +* `third_dim` - Defines the type of the third dimension when present. Possible values are defined in the module: `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2`. The last two values can be used in case your third dimension has a user defined meaning. +* `third_dim_precision` - Defines how many decimal digits to round the third dimension to (ranges from `0` to `15`). This parameter is ignored when `third_dim` is `ABSENT` (default). + + +#### `dict_encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)` + +Similar to the `encode` function, but accepts a list (or iterator) of dictionaries instead. Required keys are `"lat"` and `"lng"`. If `third_dim` is set, the corresponding key is expected `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + + +#### Examples + +Following is a simple example encoding a 2D poyline with 5 decimal digits of precision: + +```python +import flexpolyline as fp + +example = [ + (50.1022829, 8.6982122), + (50.1020076, 8.6956695), + (50.1006313, 8.6914960), + (50.0987800, 8.6875156), +] + +print(fp.encode(example)) +``` + +**Output**: `BFoz5xJ67i1B1B7PzIhaxL7Y`. + +Another example for the 3D case with altitude as the third coordinate: + +```python +example = [ + (50.1022829, 8.6982122, 10), + (50.1020076, 8.6956695, 20), + (50.1006313, 8.6914960, 30), + (50.0987800, 8.6875156, 40), +] + +print(fp.encode(example, third_dim=flexpolyline.ALTITUDE)) +``` + +**Output**: `BlBoz5xJ67i1BU1B7PUzIhaUxL7YU` + +### Decoding + +#### `decode(encoded_string)` + +Decodes the passed encoded string and returns a list of tuples `(lat, lng[, third_dim])`. + +#### `iter_decode(encoded_string)` + +Similar to `decode` but returns an iterator instead. + +#### `dict_decode(encoded_string)` + +Similar to `decode` but returns a list of dictionaries instead. The keys `"lat"` and `"lng"` are always present, while the third dimension key depends on the type of third dimension encoded. It can be one of the following: `"alt"`, `"elv"`, `"lvl"`, `"cst1"` or `"cst2"`. + +#### `iter_dict_decode(encoded_string)` + +Similar to `dict_decode` but returns an iterator instead. + +#### `get_third_dimension(encoded_string)` + +Returns the value corresponding to the third dimension encoded in the string. Possible values defined in the module are: `ABSENT`, `ALTITUDE`, `LEVEL`, `ELEVATION`, `CUSTOM1` and `CUSTOM2` + +#### Examples + +Example of decoding of a 2D polyline: + +```python +import flexpolyline as fp + +print(fp.decode("BFoz5xJ67i1B1B7PzIhaxL7Y")) +``` + +**Output**: + +``` +[ + (50.10228, 8.69821), + (50.10201, 8.69567), + (50.10063, 8.69150), + (50.09878, 8.68752) +] +``` + + +Example of decoding dicts from a 3D polyline: + +```python +import flexpolyline as fp + +print(fp.dict_decode("BlBoz5xJ67i1BU1B7PUzIhaUxL7YU")) +``` + +**Output**: + +``` +[ + {'lat': 50.10228, 'lng': 8.69821, 'alt': 10}, + {'lat': 50.10201, 'lng': 8.69567, 'alt': 20}, + {'lat': 50.10063, 'lng': 8.69150, 'alt': 30}, + {'lat': 50.09878, 'lng': 8.68752, 'alt': 40} +] +``` + + + + + + + + +%prep +%autosetup -n flexpolyline-0.1.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-flexpolyline -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.0-1 +- Package Spec generated @@ -0,0 +1 @@ +e2429bfa1a1b3c48bf51856194822e30 flexpolyline-0.1.0.tar.gz |