# java-baidu-map **Repository Path**: codergjw/java-baidu-map ## Basic Information - **Project Name**: java-baidu-map - **Description**: 基于百度地图技术,根据黑马程序员教育视频教学编写的代码。百度地图技术的应用、轨迹类场景、路线规划场景,电子围栏场景的开发,增长开发经验。 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-07-07 - **Last Updated**: 2024-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 基于百度地图技术项目 ![输入图片说明](image.png) ![输入图片说明](image2.png) #### 介绍 ### 1、项目中有用到地图技术吗? 参考回答: 我在项目中用到过地图技术,我们使用的是百度地图服务,之所以选择百度地图,是因为百度地图的功能强大,api比较全面,一些基础功能都是免费使用,服务的稳定性不错。我们使用了百度地图的中web api 与鹰眼轨迹服务,比如:地址与经纬度之间的转换,路线规划等功能、运动轨迹等。 ### 2、运动轨迹是怎么实现的? 参考回答: 运动轨迹是基于百度地图的鹰眼轨迹服务实现的,用户的每一次运动都作为Entity在鹰眼服务中创建,在运动过程中的坐标数据上传到鹰眼服务中,在运动结束后,通过鹰眼服务查询到此轨迹的所有坐标点,将其存储到Mongodb中,为前端提供接口查询,最终在页面的地图中展现出来。 之所以选择使用鹰眼轨迹服务,是因为它不仅可以存储轨迹数据,而且还有轨迹纠偏功能,这样给用户的体验更好。 ### 3、电子围栏有使用过吗? 参考回答: 有用过的。在物流项目中为了监控车辆的行驶增加了电子围栏功能,我们采用的多边形的电子围栏实现,通过百度地图服务创建了电子围栏,将车辆与电子围栏关联起来,就可以实时的监控车辆是否超出了电子围栏范围,百度地图还支持推送服务,这样我们就可以实时的监控到车辆的行驶情况。 ### 4、如果自己存储轨迹数据该如何实现? 参考回答: 这个我们也是有考虑过的,在项目的后期我们准备自己存储用户的轨迹数据,这样我们将面临两个困难,一个是如果应对客户端的高并发请求,另一个是如何存储海量数据,针对第一个问题,我们将采用Netty实现服务端,并且可以将其组建成服务集群,在接收到数据后不直接存储而是发消息到kafka,之所以选择kafka是因为其吞吐量比较高;对于海量数据存储的问题,我们采用的是Mongodb的分片式集群实现,这样可以灵活扩容,已达到海量数据存储的目的。 ### 5、如何实现在地图可视范围内搜索? 参考回答: 在地图可视范围搜索的实现主要有两点,一:获取到地图可视区域的对角点的经纬度坐标,二:在MongoDB中使用geo查询。我们使用的是MongoDB的矩形范围查询,并且使用了其聚合查询功能,这样不仅是范围查询,还可以添加其他的查询参数。