怎么读取高德地图瓦片地址图

瓦片地图:获取对象层
-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent
&&& CCNode* node
= [self getChildByTag:TileMapNode];
CCTMXTiledMap* tileMap = (CCTMXTiledMap*)
// 获取对象层
CCTMXObjectGroup* objectLayer = [tileMap
objectGroupNamed:@"ObjectLayer"];
&&& //点击是否在区域内
isTouchInRectangle = NO;
&&& //获取地图的对象的个数
numObjects = [objectLayer.objects count];
&&& for (int i =
0; i & numO i++)
//获取其中的一个对象
NSDictionary* properties = [objectLayer.objects
objectAtIndex:i];
//获取对象区域坐标
&&& CGRect rect
= [self getRectFromObjectProperties:properties
tileMap:tileMap];
//是否包含在区域内
(CGRectContainsPoint(rect, touchLocation))
isTouchInRectangle = YES;
//获取地图的区域坐标
-(CGRect) getRectFromObjectProperties:(NSDictionary*)dict
tileMap:(CCTMXTiledMap*)tileMap
&&& float x, y,
&&& x = [[dict
valueForKey:@"x"] floatValue] + tileMap.position.x;
&&& y = [[dict
valueForKey:@"y"] floatValue] + tileMap.position.y;
&&& width =
[[dict valueForKey:@"width"] floatValue];
&&& height =
[[dict valueForKey:@"height"] floatValue];
&&& return
CGRectMake(x, y, width, height);
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。8143人阅读
GIS应用(1)
之前在做百度地图应用时候一直没弄明白瓦片地图的坐标跟URL是如何挂钩的,官网提供的API里面也没详细的解说,我一直没弄明白原理,今天无意间再把这个加载魔兽地图的demo翻出来看看,后面自己动手做了一下,才明白其中的关系,这个仅适用于像我这样基础不好的初学者,这个问题虽然不难,但是容易困惑,记下来引以为戒。
我是看JS的API。
先看原demo
&!DOCTYPE html&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
&meta name=&viewport& content=&initial-scale=1.0, user-scalable=no& /&
&style type=&text/css&&
body, html,#allmap {width: 100%;height: 100%;overflow:margin:0;}
&script type=&text/javascript& src=&http://api./api?v=2.0&ak=您的密钥&&&/script&
&title&叠加魔兽地图&/title&
&div id=&allmap&&&/div&
&script type=&text/javascript&&
// 百度地图API功能
var tileLayer = new BMap.TileLayer();
tileLayer.getTilesUrl = function(tileCoord, zoom) {
& & var x = tileCoord.x;
& & var y = tileCoord.y;
& & var url = 'tiles/' + zoom + '/tile' + x + '_' + y + '.png'; & & //根据当前坐标,选取合适的瓦片图
var MyMap = new BMap.MapType('MyMap', tileLayer, {minZoom: 1, maxZoom: 4});
var map = new BMap.Map('allmap', {mapType: MyMap});
map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}));
map.centerAndZoom(new BMap.Point(0, 0), 3);
这个是设置加载瓦片规则
tileLayer.getTilesUrl = function(tileCoord, zoom) {
& & var x = tileCoord.x;
& & var y = tileCoord.y;
& & var url = 'tiles/' + zoom + '/tile' + x + '_' + y + '.png'; & & //根据当前坐标,选取合适的瓦片图
其中 &var url = 'tiles/' + zoom + '/tile' + x + '_' + y + '.png'; & & //根据当前坐标,选取合适的瓦片图
最重要,这个的意思是在当前文件夹下有一个tiles文件夹,在tiles文件夹下,有一个zoom
文件夹,在zoom 文件夹下有tilex_y.png(其中x和y根据实际计算得出)
举个例子:url= “tiles/4/tile1_1.png”&
可是一般我们用工具切出来的瓦片并非是这样一种格式,像我切出来的是tiles/zoom/X/Y.png(zoom是缩放等级0,1,2,3,4)
所以根据百度的瓦片介绍,如果要显示zoom = 1,坐标为(1,1)的图片,url=“tiles/1/1/1.png”才能正常显示
所以我的var url = 'tile/' + zoom + '/' + x + '/' + y + '.png'; 就能显示出来
不同的切图工具切的瓦片图存放的文件结构也不相同,所以要根据实际的情况设置url。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:19649次
排名:千里之外
转载:11篇
(5)(1)(1)(2)(2)(2)需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金淘宝秋季上新 火力全开抢占流量
openlayers + 本地瓦片数据的方式展现地图
有相似问题想解决?专业顾问来帮助您
匹配服务商
选择服务商,签单
服务商工作
验收并付款
已投标服务商
共有7个服务商参与报价,查看更多服务商报价
参与报价,开始赚钱
提交你的报价和方案
中标后交付作品
获得任务赏金
极速:10分钟急速响应
高品质:精选服务商提供服务
放心:不满意可退款
根据浏览的需求为您推荐
交易成功的需求
关注猪八戒微信M币:200 积分:6000
CSI暗罪迷宗
人气:55589
CSI暗罪迷宗
人气:55589
CSI暗罪迷宗
人气:55589
CSI暗罪迷宗
人气:55589
CSI暗罪迷宗
人气:55589
CSI暗罪迷宗
人气:55589
新版GM支持了瓦片地图,在第三方Tiled地图(目前只支持这一种编辑器,后面会添加)编辑器编辑好的瓦片地图可以上传到GM,在GM中以对象的形式展示在场景; 关于粒子效果,请查看:把在编辑器中编辑好的地图保存下来,保存的格式为tmx;保存好在GM中上传,同时选中tmx文件+制作地图中用到的图片(目前GM 只支持一张图片为源图片,后面会增加),然后在当前项目中启用;然后点击添加对象,在对象中“选择瓦片地图”;选择你上传的地图:在GM就会生成对象,我们把它拖到场景,它就会展示在场景中,预览就可以看见效果:在Tiled地图编辑器中的制作,这里进行简单的说明:首先我们安装这个软件:软件下载地址:然后打开编辑器,新建文件:这里设置对地图分割的小图大小:然后在右下角,上传一张源图片;就可以在右下角区域看到大图已经被分割成了很多小图:我们只需要用鼠标点下右边的小图,然后再放在左侧的区域中就可以拼成地图了:完成后保存文件,就可以获得tmx格式的文件了;注意:用tiled编辑器生成的tmx文件一定要保存到与png一个路径下面。移动也要一起移动,否则导入GM读取不到。先把tmx保存到文件夹A,再移动到png所在的文件夹B,也不可行,所以保存时直接保存到与png的文件夹内。
相关视频教程
相关图文教程}

我要回帖

更多关于 百度地图瓦片下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信