zoukankan      html  css  js  c++  java
  • MapXtreme 2005 学习心得 一些问题(八)

    先上一张MapXtreme的丑陋的图片

    这个是我历经千山才弄出来的效果。

    在处理的过程中,会有一些问题经常报错,网上几乎找不到资料可以解决了,本人经过大量实践,反复点击报错,代码步步注释的方法。

    终于小有成果。

    Table.BeginAccess(TableAccessMode.Write);这句代码,报错率非常高。

    我们在修改一个表的时候,通常要begin一下,然后处理,处理完之后再end一下

    在反复的begin与end中,一旦拿不到锁,就报错了。通常这个问题引起,是另一个表正在处理时,发生异常,你try完之后,没有endAccess引起的

     Table.DeleteFeature(feature);这句代码的报率也很高,网上流传这么一些代码:

    foreach(Featrue fea in Table)
    {
      Table.DeleteFeature(feature);
    }

    说明:

    用来删除表的数据,这里报错率通常是由于Table.BeginAccess(TableAccessMode.Write);这个异常引起的

    所以最好处理就是try一下Table.BeginAccess(TableAccessMode.Write);正常后,再执行删除表数据

    这里有一点提的,其实里面的东西最后还是执行delete from table 
    where mkey=@mkey之类的语句,这样等于一条一条执行。

    还不如直接执行delete from table就OK了,foreach来干什么。那个MISql操作的,几乎和ADO.net的操作一个样,不用担心不会。

    最后一个就是最严重的问题了。

    产生的问题是这样的:地图上画上的点,一开始好好的,然后点一下放大或细小,一会正常,一会又点不见了,再点一下,点又出来了,就这样反反复复。

    一会正常,一会不正常。

    经常反复大量研究表明:地图是存在Session中的,在研究中发现,Session经常不确定性的会丢失,所以,最好在画点的逻辑里加上一些处理:

    我是这样处理的:

    if (CommonHelper.Get<string>("Command"""== "" || map.CustomProperties["layerCount"== null || (int)map.CustomProperties["layerCount"!= map.Layers.Count)
                {
                    
                    RUnitMapView mapView 
    = new RUnitMapView(map);
                    map.CustomProperties[
    "layerCount"= map.Layers.Count;//预防Session的layer丢失
                }

    说明:

    找了一个地方保存下地图的图层数,由于生成了点之后,地图的图层一定会和初始图层不一样。所以,用了这个来做为判断Session是否丢失.

    如果Session丢失,重新加载一下数据点的处理。这样,终于解决了问题.
    版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
    个人微信公众号
    创业QQ群:617713515
    Donation(扫码支持作者):支付宝:
    Donation(扫码支持作者):微信:
  • 相关阅读:
    提醒你一下, 你真的很垃圾, 创建一个maven 的web 项目都忘记了
    java web 项目中基础技术
    java 构造函数
    分布式简介
    RabbitMq 深入了解
    JS正则表达式验证数字非常全
    mui返回上个页面并刷新数据
    Windows环境下IOS APP打包上传AppStore详细流程
    crontab 详细用法 定时任务
    Linux epoll 源码注释
  • 原文地址:https://www.cnblogs.com/cyq1162/p/1603567.html
Copyright © 2011-2022 走看看