在flex版mapabc上开发应用的感触

     早先开发过了一个系统,是基于google map的,但是google map的经纬度定位是有很大误差的,大概最大有1km左右。这次有个fj的客户想要这样一套系统,老大就让我改用mapabc,系统还是一样的系统,只不过地图换成flex 版的mapabc。我看了mapabc的api,还是比google map flash api要简单很多的。原计划一天就可以搞定这个任务。但是事实却不令人满意。

     我用了两天时间在mapabc flex版上做修改,最后问题出来了:每次我在地图上remove旧的overlay再重绘时,客户端浏览器(在ff和ie下都测试过)内存总会有1M~2M的增加。后来我就拼命优化flex程序,可是效果并不理想,在优化过程中经过我的测试,可以百分之百的确定问题出在mapabc上,而不是我的程序引起的内存问题。

 

我是每10s就从后台取一次数据(99条),并在地图上绘制出99个对象出来。观察内存,发现情形如下:每次重绘,浏览器内存增加1M多,但是过一段时间(大概五六分钟吧)flash player会释放一定的内存,但是内存量释放的还是没有增加得快,我用火狐测试,过大概四十分钟,内存会从最先的130M增加到300多M。到了这个地步,已经可以确认是mapabc flex版自身无法及时释放内存所致。后来从网上获得消息,google map在中国的地图也是采用了mapabc的数据。-_-!

 

    第二天下午,我想老大反映了此情况。第三天,早上刚到公司上班,我试着在网上查找google map api无法准确定位的解决方法。终于找到了,是一位csdn网友提供的(地址是:博客地址 )。

     原来是这样的,google map在去年曝露出一个网络接口,可以对实际经纬度进行纠偏,从而相对准确的显示在地图上。只是现在这个接口已经被封了,有心的网友当时就写个小程序从该接口获得了全部的纠偏数据。想要该数据的朋友,可以去他的博客联系他,作者可以免费提供一份最大误差40M的纠错数据;如果想要更精确的数据,就要花钱购买了,不过价格也不贵。一般的开发者,用那份免费的数据就已经可以基本上满足用户需求了。

你可能感兴趣的:(网络应用,Google,Flex,IE,Flash)