当前位置: 首页 > news >正文

关键词快速上首页排名东莞快速优化排名

关键词快速上首页排名,东莞快速优化排名,遵义信息网,芜湖做网站前文链接:QGraphicsView实现简易地图2『瓦片经纬度』 第一篇文章提到过,当地图层级较大时,暴力全加载地图会造成程序卡顿,因此需要实现地图的局部加载。 实现思路:以地图窗口(以下称为视口)为地…

前文链接:QGraphicsView实现简易地图2『瓦片经纬度』
第一篇文章提到过,当地图层级较大时,暴力全加载地图会造成程序卡顿,因此需要实现地图的局部加载。
实现思路:以地图窗口(以下称为视口)为地图展示区域,最理想情况是行列组成的瓦片地图正好与视口大小一致。然而,大多数情况下都需要行列组成的瓦片地图比视口大才能完整覆盖视口,因此需要合理计算瓦片地图的行数和列数,以最小行数和最小列数覆盖整个视口为最佳,以下将提供实现此需求的核心代码。
1、动态演示效果
在这里插入图片描述
2、静态展示图片
在这里插入图片描述

核心代码

void MapView::scaleScene()
{// 经纬度坐标转场景坐标、视图定位到鼠标中心QPointF scenePos = MapUtility::sceneCoordFromGeoCoord(m_wheelGeoCoord, m_curLevel);horizontalScrollBar()->setValue(scenePos.x() - m_offsetPos.x());verticalScrollBar()->setValue(scenePos.y() - m_offsetPos.y());// 视口宽度和高度int w = viewport()->width();int h = viewport()->height();// 瓦片像素点坐标、视口坐标QPointF pixelPos = MapUtility::tilePixelCoordFromScene(scenePos, m_curLevel);QPoint viewportPos = mapFromScene(scenePos);// 鼠标所在瓦片的四边 与 视口四边的距离int lPixel = viewportPos.x() - pixelPos.x();int rPixel = w - (viewportPos.x() + PIXMAP_SIZE - pixelPos.x());int tPixel = viewportPos.y() - pixelPos.y();int bPixel = h - (viewportPos.y() + PIXMAP_SIZE - pixelPos.y());// 计算鼠标所在瓦片的四边应该填充的完整图片数量、是否存在剩余像素int leftPixmapCount = lPixel / PIXMAP_SIZE;bool remainLeftPixel = lPixel % PIXMAP_SIZE;int rightPixmapCount = rPixel / PIXMAP_SIZE;bool remainRightPixel = rPixel % PIXMAP_SIZE;int topPixmapCount = tPixel / PIXMAP_SIZE;bool remainTopPixel = tPixel % PIXMAP_SIZE;int bottomPixmapCount = bPixel / PIXMAP_SIZE;bool remainBottomPixel = bPixel % PIXMAP_SIZE;// 计算呈现的瓦片地图左上角的瓦片坐标m_curTileCoord = MapUtility::tileCoordFromGeoCoord(m_wheelGeoCoord, m_curLevel);m_topLeftTileCoord.x = m_curTileCoord.x - leftPixmapCount;m_topLeftTileCoord.y = m_curTileCoord.y - topPixmapCount;if (remainLeftPixel && m_topLeftTileCoord.x > 0)m_topLeftTileCoord.x -= 1;if (remainTopPixel && m_topLeftTileCoord.y > 0)m_topLeftTileCoord.y -= 1;// 计算呈现的瓦片地图右下角的瓦片坐标m_bottomRightTileCoord.x = m_curTileCoord.x + rightPixmapCount;m_bottomRightTileCoord.y = m_curTileCoord.y + bottomPixmapCount;if (remainRightPixel && m_bottomRightTileCoord.x < pow(2, m_curLevel) - 1)m_bottomRightTileCoord.x += 1;if (remainBottomPixel && m_bottomRightTileCoord.y < pow(2, m_curLevel) - 1)m_bottomRightTileCoord.y += 1;// 加载瓦片QString dirPath = QString("F:/MapData/GaoDeMap/Map/MapPng/L0%1").arg(m_curLevel + 1);for (int row = m_topLeftTileCoord.y; row <= m_bottomRightTileCoord.y; ++row){for (int col = m_topLeftTileCoord.x; col <= m_bottomRightTileCoord.x; ++col){QString fileName = QString("%1/Map_%2-%3.png").arg(dirPath).arg(QString::number(row + 1).rightJustified(2, '0')).arg(QString::number(col + 1).rightJustified(2, '0'));QPixmap pixmap(fileName);QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap);item->setPos(PIXMAP_SIZE * col, PIXMAP_SIZE * row);m_scene->addItem(item);m_mapItems[row][col] = item;}}
}
http://www.tj-hxxt.cn/news/10341.html

相关文章:

  • wordpress运营seo关键字排名优化
  • 国外单页制作网站模板下载网络营销推广的方式有哪些
  • 看网站的访问量郑州网络推广平台有哪些
  • 沈阳模板建站公司有哪些什么是互联网推广
  • 沈阳网站建设武汉网站开发公司
  • 郑州网站建设求职简历深圳百度seo整站
  • 株洲网站建设制作百度提问在线回答问题
  • 做免费采集电影网站犯法吗百度竞价开户哪家好
  • 申请网站做自己的产品网络广告电话
  • 做网站必须要有前台吗三叶草gw9356
  • 创网网络河北seo网络优化培训
  • goggle营销型网站效果百度首页快速排名系统
  • 网站的总体结构四川seo选哪家
  • 山西响应式网站建设价位百度seo综合查询
  • 心铭舍品牌设计公司中国官网seo搜索优化是什么呢
  • 日照建站哪家好成都网站建设系统
  • 响应式网站是什么意思腾讯云域名注册官网
  • 兼职做网站编辑西安百度竞价代运营
  • 人才市场网站源码云南新闻最新消息今天
  • 网站关键词过多百度引擎搜索
  • 服务器内部打不开网站霸榜seo
  • 服务好的南昌网站制作小说推文推广平台
  • 表格上传网站龙网网络推广软件
  • seo专业培训seo专业培训搜索引擎优化关键词的处理
  • 新昌网站建设网站推广的方法有哪些?
  • wordpress安装插件导致网站百度快照推广一年要多少钱
  • 如何在网上做网站公司做网站需要多少钱
  • 提供图片做网站的要求网络推广软件哪个好
  • 大学专业宣传网站开发课题意义竞价交易
  • 珲春市建设局网站设计外包网站