地图项目——我想在地图上显示 KML 文件并能够根据日期、位置等对它们进行排序
Mapping project - I want to show KML files on a map and be able to sort them based on date, location etc
我目前正在进行的项目对我的技能水平来说可能过于雄心勃勃,但我认为我可以从这个练习中学到很多东西。
我在一家航空测量公司工作,每次飞行项目时,LiDAR 软件都会创建一个日志文件。从这个日志文件中,我编写了一个脚本来提取数据并输出一个包含航班号、位置、高度等数据的 KML 文件。
我现在想做的是编写一个程序,可以将这些 KML 上传到数据库并在类似于 Google Earth 的 window 中显示它们,用户可以通过航班号对它们进行排序,位置和日期等。这将是一个非常方便的工作软件,很多人会使用它,更不用说我试图在公司中获得 Jnr Dev 职位的大量布朗尼积分了。
我知道我主要可以使用 Google 地球来完成这项任务,但对我来说,这不是重点。
到目前为止,我研究了 Folium 和 LeafletJS。
https://pypi.org/project/folium/
Folium 可以操作数据而 Leaflet 可以呈现它,但我不确定我是否有最好的解决方案来完成这项工作,以及它是否能完全满足我的需要。尤其是考虑到我只知道一点Javascript。我也不确定 Folium
理想情况下,这个应用程序要么是一个独立的软件,要么是我现有的脚本写入在线服务器然后可以通过浏览器打开和显示的东西 window。我已经忍不住咬牙切齿了,但我已经准备好花点时间让它成为一个很好的学习项目。最好写成Python.
任何关于我可能使用的包的提示或建议将不胜感激。或者,如果我的方向完全错误,请告诉我。
非常感谢。
欢迎来到 SO。
以下是一些可能对您有用的要素:
leaflet 可以原生加载 geojson files. So you could either convert the kml files to geojson using python, or use a leaflet plugin(例如 leaflet-omnivore)以使用 leaflet 读取 kml 文件。作为第一步,我会从那个开始:一个显示你的飞行路径的网页。路径数据只是一个由您的应用程序加载的 geojson 文件。
然后,如果您希望您的应用程序根据某些条件过滤飞行路径,并且您有很多这样的文件,那么您将需要一个后端。这意味着一个带有数据库的服务器,可能具有地理功能(postGIS,mongoDB,......有很多)和一个后端应用程序。所以你的前端应用程序(带有 js 和传单)将向你的服务器发送一些请求(请向我发送 XYZ 航班的文件),后端接收该请求,执行数据库查询,获取文件并将其发回给客户。客户端在地图上显示数据。
如果你想在Python中编写后端,你可以看看像Django or Flask这样的框架。
这是很多工具,但是如果您从 js + leaflet 部分开始,您会很高兴快速看到地图并且很快就会有东西可以展示。然后您可以开始查看后端部分。如果你设法完成这个项目......你绝对应该得到初级开发职位。
我目前正在进行的项目对我的技能水平来说可能过于雄心勃勃,但我认为我可以从这个练习中学到很多东西。
我在一家航空测量公司工作,每次飞行项目时,LiDAR 软件都会创建一个日志文件。从这个日志文件中,我编写了一个脚本来提取数据并输出一个包含航班号、位置、高度等数据的 KML 文件。
我现在想做的是编写一个程序,可以将这些 KML 上传到数据库并在类似于 Google Earth 的 window 中显示它们,用户可以通过航班号对它们进行排序,位置和日期等。这将是一个非常方便的工作软件,很多人会使用它,更不用说我试图在公司中获得 Jnr Dev 职位的大量布朗尼积分了。
我知道我主要可以使用 Google 地球来完成这项任务,但对我来说,这不是重点。
到目前为止,我研究了 Folium 和 LeafletJS。
https://pypi.org/project/folium/
Folium 可以操作数据而 Leaflet 可以呈现它,但我不确定我是否有最好的解决方案来完成这项工作,以及它是否能完全满足我的需要。尤其是考虑到我只知道一点Javascript。我也不确定 Folium
理想情况下,这个应用程序要么是一个独立的软件,要么是我现有的脚本写入在线服务器然后可以通过浏览器打开和显示的东西 window。我已经忍不住咬牙切齿了,但我已经准备好花点时间让它成为一个很好的学习项目。最好写成Python.
任何关于我可能使用的包的提示或建议将不胜感激。或者,如果我的方向完全错误,请告诉我。
非常感谢。
欢迎来到 SO。
以下是一些可能对您有用的要素:
leaflet 可以原生加载 geojson files. So you could either convert the kml files to geojson using python, or use a leaflet plugin(例如 leaflet-omnivore)以使用 leaflet 读取 kml 文件。作为第一步,我会从那个开始:一个显示你的飞行路径的网页。路径数据只是一个由您的应用程序加载的 geojson 文件。
然后,如果您希望您的应用程序根据某些条件过滤飞行路径,并且您有很多这样的文件,那么您将需要一个后端。这意味着一个带有数据库的服务器,可能具有地理功能(postGIS,mongoDB,......有很多)和一个后端应用程序。所以你的前端应用程序(带有 js 和传单)将向你的服务器发送一些请求(请向我发送 XYZ 航班的文件),后端接收该请求,执行数据库查询,获取文件并将其发回给客户。客户端在地图上显示数据。
如果你想在Python中编写后端,你可以看看像Django or Flask这样的框架。
这是很多工具,但是如果您从 js + leaflet 部分开始,您会很高兴快速看到地图并且很快就会有东西可以展示。然后您可以开始查看后端部分。如果你设法完成这个项目......你绝对应该得到初级开发职位。