## Описание
Библиотека для создания скриншотов маршрута в Open Street Map
`pip install OsmRouteScreenLib`
Написана на основе статьи: https://smyt.ru/blog/statc-osm-map-with-python/
### Использование
<pre>
import OsmRouteScreenLib.startup as st
import OsmRouteScreenLib.options as o
options = o.make_options('http://tile-server.domain.com/{zoom}/{x}/{y}.png',
'https://route.domain.com/route/v1/driving/{startPoint};{endPoint}?overview=full&geometries=geojson')
st.get_route_screen_by_points((47.232565,56.141757), (47.220063,56.139836), options)
</pre>
Доступны следующие опции:
* url_tile: str - путь к тайловому серверу;
* url_routing: str - путь к серверу для получения маршрута;
* padding: float - отступ карты от краёв маршрута в процентах от 0 до 1;
* zoom: int - zoom карты;
* output: str - путь к выходному файлу;
* line_width: int - ширина линии;
* marker_text: str - метки;
* show_geodesic: bool - отображать метку с пройденной дистанцией (км);
* split_line: bool - цветовое разделение маршрута.
## Сборка Ubuntu 22.04
Устанавливаем дополнительные библиотека: `sudo apt install libcairo2-dev pkg-config python3-dev`
<pre>
python3 -m venv routing-service
source routing-service/bin/activate
pip install -r requirements.txt
</pre>
### Публикация пакета
Устанавливаем библиотеки для публикации в pypi.org
<pre>
pip install setuptools wheel twine
</pre>
Выполняем в корне проекта
<pre>
python setup.py sdist bdist_wheel
twine upload --repository pypi dist/*
</pre>
Raw data
{
"_id": null,
"home_page": null,
"name": "OsmRouteScreenLib",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "osm route screenshot",
"author": "Aleksandr Krasnov",
"author_email": "akrasnov87@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/3f/a3/a1ba45f6183d4fa2c1bdb4aef3e8b7a220fcd860377341ebb153c46302ff/OsmRouteScreenLib-0.0.5.tar.gz",
"platform": null,
"description": "## \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\n\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0432 Open Street Map\n\n`pip install OsmRouteScreenLib`\n\n\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u0430\u0442\u044c\u0438: https://smyt.ru/blog/statc-osm-map-with-python/\n\n### \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n<pre>\nimport OsmRouteScreenLib.startup as st\nimport OsmRouteScreenLib.options as o\n\noptions = o.make_options('http://tile-server.domain.com/{zoom}/{x}/{y}.png',\n 'https://route.domain.com/route/v1/driving/{startPoint};{endPoint}?overview=full&geometries=geojson')\n\nst.get_route_screen_by_points((47.232565,56.141757), (47.220063,56.139836), options)\n</pre>\n\n\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0446\u0438\u0438:\n\n* url_tile: str - \u043f\u0443\u0442\u044c \u043a \u0442\u0430\u0439\u043b\u043e\u0432\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443;\n* url_routing: str - \u043f\u0443\u0442\u044c \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430;\n* padding: float - \u043e\u0442\u0441\u0442\u0443\u043f \u043a\u0430\u0440\u0442\u044b \u043e\u0442 \u043a\u0440\u0430\u0451\u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043e\u0442 0 \u0434\u043e 1;\n* zoom: int - zoom \u043a\u0430\u0440\u0442\u044b;\n* output: str - \u043f\u0443\u0442\u044c \u043a \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443;\n* line_width: int - \u0448\u0438\u0440\u0438\u043d\u0430 \u043b\u0438\u043d\u0438\u0438;\n* marker_text: str - \u043c\u0435\u0442\u043a\u0438;\n* show_geodesic: bool - \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043c\u0435\u0442\u043a\u0443 \u0441 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0435\u0439 (\u043a\u043c);\n* split_line: bool - \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430.\n\n## \u0421\u0431\u043e\u0440\u043a\u0430 Ubuntu 22.04\n\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430: `sudo apt install libcairo2-dev pkg-config python3-dev`\n\n<pre>\npython3 -m venv routing-service\nsource routing-service/bin/activate\npip install -r requirements.txt\n</pre>\n\n### \u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430\n\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 pypi.org\n<pre>\npip install setuptools wheel twine\n</pre>\n\n\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n<pre>\npython setup.py sdist bdist_wheel\ntwine upload --repository pypi dist/*\n</pre>\n\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Open Street Map route screenshot",
"version": "0.0.5",
"project_urls": null,
"split_keywords": [
"osm",
"route",
"screenshot"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3864c3622b253d9a9c2cc1975577899678b3fcb3a1f88a707f353b9190526868",
"md5": "8bf4571bd16ce02f6f58634142e8f97e",
"sha256": "ada68b34721f52d92d86c4818185b354484d53029e6f361542dab31827bff18c"
},
"downloads": -1,
"filename": "OsmRouteScreenLib-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8bf4571bd16ce02f6f58634142e8f97e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 8324,
"upload_time": "2025-07-11T08:53:56",
"upload_time_iso_8601": "2025-07-11T08:53:56.161945Z",
"url": "https://files.pythonhosted.org/packages/38/64/c3622b253d9a9c2cc1975577899678b3fcb3a1f88a707f353b9190526868/OsmRouteScreenLib-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3fa3a1ba45f6183d4fa2c1bdb4aef3e8b7a220fcd860377341ebb153c46302ff",
"md5": "4b66a0424fa70bfa8676ba87c4609f21",
"sha256": "97a2ba37c16f92f565cdc85fa3ebcdbcf05208621ca23a62c3c701f8150781ff"
},
"downloads": -1,
"filename": "OsmRouteScreenLib-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "4b66a0424fa70bfa8676ba87c4609f21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 6681,
"upload_time": "2025-07-11T08:53:58",
"upload_time_iso_8601": "2025-07-11T08:53:58.193097Z",
"url": "https://files.pythonhosted.org/packages/3f/a3/a1ba45f6183d4fa2c1bdb4aef3e8b7a220fcd860377341ebb153c46302ff/OsmRouteScreenLib-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 08:53:58",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "osmroutescreenlib"
}