`

地图加载缓存策略

    博客分类:
  • AS3
阅读更多

1.电子地图类:

 

    地图的展示实际上就是一个算法问题,假设有一个500X300的可视窗口,需要展示一个地图,地图很大,(256*100) X (256*100)的,如果上来就 两个for循环,那就不对了。这样做,反正用户也只能看到宽口区域的那我们就只加载窗口区域的。

 

    比如:窗口大小 windowW:Number,windowH:Number;

            单位地图大小: uintPicW:Number,uintPicH:Number;

            当前地图坐标:position:Point;

 

   怎样来求出,当前需要记载的图片呢?

这样,如下图,


 

 

我们可以很容易的求出窗口的4个点,所占的地图的索引:

x0 = position.x - windowW/2;

x1 = position.x + windowW/2;

y0 = position.y - windowH/2;

y1 = position.y + windowH/2;

 

mapIndexX0 = uint(x0/256);

mapIndexX1 = uint(x1/256);

mapIndexY0 = uint(y0/256);

mapIndexY1 = uint(y1/256);

 

所以要加载的可视区域地图图片就是, mapIndexX0 - mapIndexX1  mapIndexY0- mapIndexY1区域的图片;

但是,怎么缓存呢,其实就是对得到的这区域的图片在多加载点而已,浏览器会对图片进行缓存。

 

    这样做,上面的mapIndexX0 - mapIndexX1  mapIndexY0- mapIndexY1,是必须要加载的图片的对应索引,加个缓存,比如多加载可视区域外 ? 圈的图片,mapIndexX0-?,mapIndexX1+?,mapIndexY0-?,mapIndexY1+?,当然还要考虑index的最大最小值.

 

 

  • 大小: 59.9 KB
  • 大小: 47.1 KB
分享到:
评论

相关推荐

    瓦片地图实现(缓存加载,像素单位平移,缩放)

    通过预先下载并存储用户可能需要的地图瓦片,可以减少网络延迟,使地图加载更快。一般有两种缓存策略:本地存储和服务器端缓存。本地存储通常利用浏览器的Web Storage或IndexedDB进行,当用户访问过的瓦片在本地缓存...

    Android高德加载谷歌卫星瓦片,并缓存本地

    - 使用`LruCache`或`DiskLruCache`等缓存策略,将获取到的瓦片图片缓存到内存或磁盘,下次需要时直接从缓存读取。 4. **加载多个Marker**: - Marker是地图上的标记点,可以用来表示特定位置。通过`Map.Marker`类...

    瓦片地图加载示例

    瓦片地图加载是一种在计算机图形应用中常见的技术,特别是在地理信息系统(GIS)和网络地图服务中,如Google Maps、百度地图等。这种技术通过将大范围的地图数据分割成多个小块,即“瓦片”,然后根据需要加载相应的...

    Arcgis for android 离线地图缓存制作教程

    1. **灵活的瓦片方案选择**:ArcGIS Server支持从在线地图服务(如ArcGIS Online、Google Maps等)加载瓦片方案,也可以自定义创建缓存策略。 2. **丰富的缓存策略**: - **全图范围缓存**:适用于数据量较小的...

    Qt加载百度离线地图

    由于离线地图的数据量可能非常大,为了提高性能,可以采用缓存策略,将最近或最常访问的瓦片保存在内存中,避免频繁地读取硬盘。 总结,加载百度离线地图到Qt 4.8.6应用涉及到地图数据的解析、视图的构建、图层切换...

    离线BD瓦片地图加载.zip

    3. **缓存策略**:为了提高用户体验,通常会将最近或常用的地图瓦片进行本地缓存,减少下次加载时的等待时间。 4. **平滑缩放和拖动**:在用户缩放或移动地图时,需要预加载相邻级别的瓦片,确保平滑过渡,防止出现...

    Gmap加载在线天地图

    5. **性能优化**:考虑到地图加载的性能,我们可以采用预加载策略,预测用户可能会查看的区域,提前加载相关的瓦片。此外,还可以利用分层显示和懒加载技术,减少初始加载时的数据量。 6. **用户交互**:最后,为了...

    as3 简单人物行走 地图分块加载

    6. **缓存策略**:对已加载但不再需要的地图块,可以采取缓存策略,如LRU(Least Recently Used)算法,决定何时释放内存。 总结起来,AS3中的简单人物行走和地图分块加载是游戏开发中的核心技术。通过对人物行走的...

    地图加载保存

    8. **性能优化**:考虑到地图可能包含大量数据,可以采用分块加载、缓存策略等方法提高加载速度和用户体验。 9. **安全考虑**:如果涉及用户数据,需注意隐私保护,遵循相关的数据处理法规。 总结来说,“地图加载...

    地图实现批量加载数据及图层展示

    总结,地图实现批量加载数据及图层展示涉及地图框架的选择、数据格式处理、数据加载策略、图层管理与渲染、性能优化等多个方面。理解和掌握这些知识点,将有助于开发出高效、交互性强的地图应用。

    Qt qml加载Html百度地图 qml发送模拟经纬度控制地图图标移动

    - 考虑使用缓存策略,减少网络请求次数。 8. **示例代码片段** 下面是一些关键代码片段的简要展示: - QML中加载HTML和设置初始经纬度: ```qml WebView { id: webView url: "file:///path/to/your/map....

    openlayers5加载百度地图.zip

    5. **性能提升**:新版本通过优化和缓存策略提升了渲染速度,尤其对于大量数据和复杂操作。 6. **API改进**:OpenLayers 5的API更加模块化,便于开发者按需引入特定功能,降低了整体文件大小。 接下来,关于如何在...

    基于ArcGIS API for JavaScript加载百度各种类型切片地图

    - 性能优化:大量地图切片的加载可能会对页面性能产生影响,可以通过缓存策略和懒加载技术来提高用户体验。 - 兼容性测试:确保你的解决方案在不同浏览器和设备上都能正常工作。 - 许可和版权:使用百度地图和ArcGIS...

    瓦片地图实现(解决了资源问题,增加缓存功能)

    文件“瓦片地图加载”可能是项目的核心代码或者说明文档,包含了实现瓦片地图加载的具体步骤和技术细节,包括如何配置服务器、如何处理瓦片请求、如何实现缓存机制等。通过阅读和分析这个文件,可以深入理解瓦片地图...

    整合图片懒加载及百度地图定位与显示

    为了优化性能,地图图片通常会被缓存,避免重复加载相同的瓦片。 在提供的源码中,我们可以看到如何将这些技术整合到一个完整的应用中。开发者可能会使用某种框架(如React或Vue)来构建用户界面,同时结合原生...

    QT5.9.2 QWebEngineView实现百度离线地图示例

    当然,实际项目可能还需要考虑更多因素,如性能优化、地图数据的更新策略、错误处理等。在提供的"MapExample"压缩包文件中,你应该能找到实现这些功能的示例代码,通过学习和调试,你可以更好地理解这一过程。

    ArcGIS API for JavaScript3加载百度地图和影像

    5. 处理地图事件:你可以添加事件监听器,如“load”,来确保地图加载完成后执行特定操作。 ```javascript map.on("load", function() { console.log("地图已加载"); }); ``` 对于加载百度地图的影像,情况类似但...

    mapboxwms天地图,高德地图,谷歌地图

    在使用Mapbox WMS时,注意考虑性能优化,比如使用适当的缓存策略,避免频繁请求地图数据。此外,尊重并遵守各个地图服务的使用条款,确保合法合规使用。 总结来说,Mapbox WMS是一个强大的工具,它允许开发者集成...

    AE加载谷歌和搜狗地图.zip

    此外,考虑到性能和用户体验,应适当优化地图加载速度,例如通过缓存已加载的瓦片。 6. **扩展应用**:一旦成功集成,你可以在ArcEngine应用中结合其他GIS功能,比如叠加自有的地理数据,进行空间分析,或者与其他...

Global site tag (gtag.js) - Google Analytics