瓦片地图,通过像素坐标返回瓦片坐标的函数

原创 2015年07月06日 17:45:06
//tiledmap是一个全局变量,要在.h文件中定义TMXTiledMap* tiledmap
tiledmap = TMXTiledMap::create("map.tmx");

 cocos2d::Vec2 HelloWorld::tiledCoordFromPosition(cocos2d::Vec2 position)
{
    int x = position.x/tiledmap->getTileSize().width;
    int y = (tiledmap->getTileSize().height*tiledmap->getMapSize().height-position.y)/tiledmap->getTileSize().height;
    return Vec2(x,y);
}
  • 函数放回类型cocos2d::Vec2,HelloWorld类名,tiledCoordFromPosition函数名,参数是cocos2d::Vec2类型
  • 该瓦片在地图中(原点在左上角)x轴坐标的像素position.x除以单个瓦片像素尺寸的宽tiledmap->getTileSize().width
  • 单个瓦片像素尺寸的高tiledmap->getTileSize().height乘以地图中高度的瓦片个数tiledmap->getMapSize().height即整个地图高的像素,减去该瓦片在地图中y轴的坐标position.y,得到的即该瓦片在OpenGL(原点在左下角,cocos2dx默认的坐标)坐标下y轴的像素值,最后再除以单个瓦片像素尺寸的高tiledmap->getTileSize().height

我在调试的时候犯了一个特别基础的错误,我在.h文件定义了全局变量TMXTiledMap* tiledmap,然后又在.cpp文件里面这样给他初始化,代码如下:

//.h定义了tiledmap,再这样声明变量初始化,会出错!!!
TMXTiledMap* tiledmap = TMXTiledMap::create("map.tmx");

结果调试了半天都不行,后来才发现是重复定义了,导致的结果是map.tmx地图虽然可以正常地在屏幕中显示,但是却无法获得tiledmap里面的瓦片参数,调试一直出错误。解决的办法很简单,就是把.cpp里面的TMXTiledMap*去掉就好,就像第一段代码那样句没有问题了。

自定义地图数据瓦片化请求的一种实现方案

Reference from: http://blog.csdn.net/sagittarius1988/article/details/50002449 一、背景介绍         之...
  • boonya
  • boonya
  • 2016年01月20日 14:08
  • 2294

GMap.Net添加百度和高德地图瓦片源

为GMap.NET添加百度地图源
  • zhaozhipeng
  • zhaozhipeng
  • 2015年04月18日 22:16
  • 3736

Google地图瓦片拼图算法解析

客户端地图拼图算法解析 概述:主要是阐述如何将瓦片地图图片拼接成完整地图的一些概念以及相关算法。 基本概念: 地图瓦片地址:http://mt2.google.cn/vt/l...
  • youngkingyj
  • youngkingyj
  • 2014年04月10日 20:41
  • 7676

根据坐标得到天地图、谷歌地图对应瓦片

  • 2015年01月30日 10:28
  • 2KB
  • 下载

google离线地图实例,加载本地地图瓦片, 支持点线面及图文标注,坐标定位,卫星、电子地图切换

说明: 1.无偏移坐标定位; 2.可以自由搭配点线面配置信息(颜色、粗细、透明度等); 3.地图级别自定义; 4.中心点自定义; 5.ajax提交通过php保存到mysql数据库(保存相应的标注信息,...
  • luopdjia520
  • luopdjia520
  • 2015年12月30日 11:14
  • 4373

格子地图 像素坐标 地图坐标 转化

/** * 像素坐标转换为地图坐标 * */ public SpaceToTiled(point: egret.Point): egret.Poin...
  • W_han__
  • W_han__
  • 2016年10月09日 11:31
  • 1043

最小二乘法拟合亚像素坐标时不准确问题查找

前面的文章http://blog.csdn.net/zilanpotou182/article/details/69848610介绍了使用Zernike矩进行亚像素边缘细化的方法,如果我们是检测圆形物...
  • zilanpotou182
  • zilanpotou182
  • 2017年07月19日 20:08
  • 231

MFC 以图像大小打开并显示图像,鼠标左击显示像素坐标

一、创建MFC对话框,类名CDialogDlg,添加按钮IDC_BUTTON1,OnBnClickedButton1()函数如下: CShow *dlg; dlg...
  • xhl965716923
  • xhl965716923
  • 2017年07月10日 15:54
  • 718

图像处理---关于像素坐标矩阵变换(平移,旋转,缩放,错切)

转载于: http://blog.csdn.net/jarlen/article/details/44877961 图像处理缩放变换旋转矩阵 介绍 坐标变换矩阵是一个3*3的矩...
  • xuanyoumeng
  • xuanyoumeng
  • 2015年04月06日 10:53
  • 2872

基于opencv技术获取视频流像素坐标

最近
  • u012995294
  • u012995294
  • 2014年06月03日 20:55
  • 714
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:瓦片地图,通过像素坐标返回瓦片坐标的函数
举报原因:
原因补充:

(最多只允许输入30个字)