欢迎光临散文网 会员登陆 & 注册

实现自己的地图导航!技术向!和哥一起学技术!

2023-03-29 23:37 作者:十九小课堂开课了  | 我要投稿


首先,需要确保已经安装好了 JDK 和 Maven,并已经设置好了相关的环境变量。然后,可以按照以下步骤来实现这个应用程序:


1. 创建一个 Maven 项目

可以使用 Maven Archetype 创建一个新的 Maven 项目。在命令行中执行以下命令:

这将创建一个名为 pathfinder 的 Maven 项目,并包含一个基本的 Web 应用程序结构。


2. 添加 Spring 和 GraphHopper 依赖项

在 pom.xml 文件中添加以下依赖项:

这步操作直接起飞将添加 Spring Web 和 Spring Web MVC 依赖项,以及 GraphHopper Web 依赖项。


3. 创建 Spring 配置文件

在 src/main/resources 目录下创建一个名为 applicationContext.xml 的 Spring 配置文件。在这个文件中,可以配置 Spring 应用程序上下文和 MVC 模块。以下是一个示例配置:

这里面,<context:component-scan> 用于扫描并注册 Spring 管理的组件,<mvc:annotation-driven> 用于启用 Spring MVC 注解支持。<bean> 标签用于创建一个 GraphHopperServer 实例,这是一个 GraphHopper 服务器,可以将它用于路线规划。


4. 创建控制器类

这一步步很重要!!!!在 com.example.pathfinder 包中创建一个名为 PathfinderController 的控制器类,这个类将处理来自客户端的请求,并使用 GraphHopper 技术计算最短路径。以下是一个示例控制器类:

其中,@Controller 和 @RequestMapping 注解用于将这个类标记为 Spring MVC 控制器,并映射到 /pathfinder 路径。@Autowired 注解用于将 GraphHopperServer 实例注入到这个类中。@GetMapping 注解用于处理 GET 请求,并从请求参数中获取起点和终点坐标。然后,它将创建一个 GHRequest 对象,并使用 GraphHopperServer 计算最短路径。如果出现错误,它将将错误消息添加到模型中,并返回 "error" 视图。否则,它将将路径坐标添加到模型中,并返回 "route" 视图。


5. 创建视图

在 src/main/webapp/WEB-INF/views 目录下创建两个名为 "route.jsp" 和 "error.jsp" 的 JSP 视图文件。以下是一个示例 "route.jsp" 文件:

这个文件将显示一个包含路径的 Mapbox 地图。它使用 ${coordinates} 表达式获取控制器类中添加到模型中的路径坐标,并将其转换为 JavaScript 数组。在 "map.on('load', function() {...})" 回调函数中,它使用 Mapbox GL JS API 添加一个名为 "route" 的图层,并将路径坐标添加到这个图层的 "source" 属性中。

类似地,"error.jsp" 文件将显示一个错误消息,并提示用户返回到主页:


6. 配置 Spring MVC

在 src/main/webapp/WEB-INF 目录下创建一个名为 "spring-servlet.xml" 的 Spring MVC 配置文件。以下是一个示例配置文件:

这个文件配置了 Spring MVC 的组件扫描、注解驱动和视图解析器。它还定义了 GraphHopperServer 和 GraphHopper 对象的 bean。你需要将 "path/to/your/graphhopper/folder" 和 "path/to/your/osm/file" 替换为你的 GraphHopper 文件夹和 OpenStreetMap 文件路径。


7.配置 Web 应用

在 src/main/webapp/WEB-INF 目录下创建一个名为 "web.xml" 的 web.xml 文件。以下是一个示例文件:

这个文件配置了 Spring MVC 的 DispatcherServlet 和路径映射。它将所有请求映射到 "/" 路径,然后由 DispatcherServlet 处理。

起飞起飞!!!运行应用

现在你可以使用 Maven 构建并运行应用了。在项目根目录下运行以下命令:

这将启动一个嵌入式 Tomcat 服务器,并在本地主机的端口号为 8080 的位置上运行应用。你可以在浏览器中输入 "http://localhost:8080/" 访问应用,并在搜索框中输入起点和终点坐标来查找路径。

后记(前面起飞就行了,后边是留给嗷嗷想学习的同学的)

添加其他功能

你现在可以添加其他功能来完善你的危险品运输管理系统。例如,你可以添加一个登陆页面来限制用户访问,或者添加一个实时交通信息功能来让用户更准确地规划路线。这些功能可以通过在 Spring MVC 中添加新的控制器和视图来实现。

测试和部署

在添加新功能后,你需要进行测试并将应用部署到服务器上。你可以使用 JUnit 测试来测试你的控制器和服务层代码。在将应用部署到服务器上之前,你需要将应用配置文件中的相关配置更改为生产环境的配置。

总结

在这次教程力,咱们一起学习了如何使用 Spring 和 GraphHopper 技术来实现一个web应用的导航模块,创建了一个 Spring MVC 应用程序,并使用 GraphHopper 进行路径规划。你还学习了如何将应用程序部署到 Tomcat 服务器,并添加其他功能来完善应用程序。现在你可以使用这些技术来开发其他类型的 Web 应用程序,其实现在graphhopper已经更新到7.0了真的要制作自己的导航可以直接去github搜索然后git他的开源UI代码部署到本地就可以,哥只是提供一个思路。


实现自己的地图导航!技术向!和哥一起学技术!的评论 (共 条)

分享到微博请遵守国家法律