地图类系统开发过程中的问题探究

 在过去的几年中,我们深度涉足地图类系统的开发,从业务设计、系统开发到测试使用,尽管付出了大量的努力,但总觉得存在一些不尽如人意之处。以下是我们在此过程中遇到的一些问题及其解决策略,敬请各位专家和同行给予指正和交流。

一、遇到的问题及解决方式

问题1:IN查询超出最大限制

解决方式:

在Oracle和MySQL中,IN查询都存在长度限制,Oracle的限制为1000,而MySQL也有类似的限制。以下的解决方案适用于两者:
1. SQL查询优化:关于这个问题的详细探讨,可以参考这篇博客文章:https://blog.csdn.net/qq_40896997/article/details/119897608,其中提供了深入的分析和可能的解决方案。

2. Lambda表达式查询优化:我们可以利用工具包MybatisParameterUtils进行循环遍历,该工具包位于com.gtzh.tools.MybatisParameterUtils。具体的应用示例可以在接口gisElement/listPages中找到。

需要注意的是,当数据量较大且查询速度变得非常慢时,我们不建议继续使用IN查询。在这种情况下,采用’EXISTS’替代’IN’可能会是一个更优的选择,因为它能够在满足条件的情况下尽早终止查询,避免了临时表的生成和扫描,从而提高查询效率。

问题2:在台账新增要素时,发现标绘未能正常显示

解决方式:首先,我们需要点击数据源校正选项,以此来核实台账新增要素的ID是否已经存在于已发布的SHP数据中。如果在进行校正操作后没有观察到任何变化,这可能意味着该数据已经存在,这时需查看唯一id是否相同

问题3:sld样式文件修改

解决方式:

  1. 非代码相关问题:

    • Geoserver服务尚未启动,导致系统无法正常运行。
    • SLD文件的位置不准确,可能造成了服务无法找到并应用相应的样式定义。
    • SLD格式被识别为不可用,可能是由于文件损坏或者格式不符合规范所致。
    • 账号密码输入错误,导致系统权限验证失败,建议核实并重新输入正确的登录凭证。
  2. 代码相关问题:

    • 在拼接SLD的子父级关系时出现了错误,这可能会导致样式层级混乱,影响数据的正确显示。
    • 请求拼接的格式不正确,特别是在请求时使用了GBK编码,而在获取响应时却采用了UTF-8编码,这种编码不一致可能导致数据解析异常。
    • 解析格式不正确,可能是由于数据源或响应格式与预期不符,需要检查并调整解析逻辑以确保数据能够被正确解读和处理。

问题4:要素数量过多时无法加载或加载速度慢(用下述方法还是很慢,希望大家有思路的话可以交流一下)

解决方式:

1. 后台拼接ogc,使用案例接口gisProjMap /layerConvert
2. 在前端请求成功后,我们将数据存储在缓存中。这是因为Geoserver在处理请求时存在长度限制,当要素数量过大时,可能会导致请求失败。通过缓存机制,我们可以分批次处理和展示数据,从而提高加载效率

 问题5:地图上图层不显示或要素不显示

解决方式:

1. geoserver图层或图层组无法显示,可能是shp数据有问题,可能是唯一ID、要素类型等存在错误
2. 这种情况可能是由以下几种原因引起的:台账系统中不存在此数据、返回的OGC格式不正确或数据数量不符、或是显示配置设置存在问题。为了解决这个问题,我们需要逐一排查这些可能性,确保每个环节的设置都准确无误

问题6:shp数据发布后不生效

解决方式:

1. 基础地图中替换shp数据的压缩包
2. 查看geoserver服务中图层组或者单个图层是否生效
3. 未删除geoserver图层或图层组
4. 如果遇到专题图无法生效的问题,可能的原因在于虽然已在基础地图中替换了SHP数据压缩包,但专题图中并未进行相应的替换。这种情况尤其常见于专题图已经配置完成的情况下。因此,记得在专题图中也进行同样的数据替换操作,以确保其与基础地图的数据保持一致

问题7:专题台账导入失败

解决方式:

1. 非代码问题:导入模板不正确、自定义字段格式不正确
2. 代码问题:自定义字段数量不对应(目前自定义字段的数量需要后端手动写死)、基础字段与自定义字段没有对应
注意:自定义字段顺序问题

问题8:拓扑分析中地图不显示

解决方式:

1. 未导入拓扑要素台账
2. 已经导入台账,需查看专题图图层是否显示。若专题图不显示,需要看地图显示的问题

问题9:拓扑资源台账导入失败

解决方式:

1. 导入顺序需先导入拓扑图,再带入资源台账
2. 资源台账GISID不存在专题图中

问题10:拓扑配置中配置要素一段时间后还需要重新配置

解决方式:代码问题,导入的时候没有通过专业、拓扑清单筛选,导致导入后数据不匹配

 二、待解决问题

在渲染专题图图层数据时,需对基础地图图层数据进行二次筛选拼接,实现专题图与专专题图之间的数据隔离及准确性。但由于数据量过多在请求geoserver服务时,将会导致拼接的参数过长,同时请求geoserver服务的参数也有长度的限制,导致了专题图渲染速度过慢或失败

我们当前正在积极探讨解决方案,希望能找到一种有效的方法来优化地图加载速度,同时保持图层数据的精确性和完整性。因此我们诚邀各位业界大神分享你们的见解和解决思路。

无论您有任何可能的策略、技巧或是以往的经验,我们都热烈欢迎并期待与您进行深入的交流和讨论。您的专业意见可能会为我们的难题带来突破性的解答,共同推动地理信息处理技术的进步。让我们携手合作,共创高效、流畅的地图展示体验。

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poppingDL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值