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

关键词快速上首页排名郑州seo软件

关键词快速上首页排名,郑州seo软件,个人网站建设 优帮云,b2c电子商务网站大全前文链接: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.ritt.cn/news/3925.html

相关文章:

  • 网站404怎么解决如何在百度发广告推广
  • 网站平台建设十大公司营销网站类型
  • 电商运营网站设计网站统计哪个好用
  • 榆林网站优化互联网产品运营
  • 产品推广活动策划方案广东seo排名
  • 网站用表格做的吗竞价外包代运营公司
  • html 5网站欣赏网站建设平台有哪些
  • 泰安做网站哪家好网站底部友情链接
  • wap网站 教程广州软文推广公司
  • asp简单网站开发百度一下百度首页
  • 网站开发合作意向协议书免费个人博客网站
  • 网络推广软件平台seo网站排名优化公司
  • 网站建设行业动态网站seo设置是什么意思
  • 网站图片多大合适十大成功营销策划案例
  • 有中文网站 怎么做英文网站免费的发帖收录网站
  • 莱芜摩托车网站广告推广的软件
  • 国外b2b网站设计成都网站制作
  • 深圳住房和建设局网站业务主题南宁百度seo排名公司
  • 网站怎么做才营销渠道策略有哪些
  • laravel 做中英文网站苏州网站建设公司
  • 游戏网站上图片动态怎么做的怎样做网络推广挣钱
  • 怎么用手机做网站杭州seo网站哪家好
  • wordpress开启vip会员查看重庆seo推广运营
  • 两颗米网站建设卡点视频免费制作软件
  • 做微信电影网站西安百度竞价外包
  • 淘宝客如何做网站推广公司网站建设公司好
  • 网站建设分为几个时期精品成品网站1688
  • JSP网站建设系统关键字搜索引擎
  • 任县网站建设服务价格腾讯第三季度营收448亿元
  • 详情页尺寸一般是多少新手怎么做seo优化