Monthly Archives: November 2015

2张图教你认识世界人口分布

下面图中,蓝色区域生活着世界上大概5%的人口,红色区域同样生活着5%的人。 蓝色区域主要是高山、极地和沙漠等不适合人类居住的区域,这包括整个大洋洲、北美的加拿大以及北欧部分地区。 红色区域为世界上人口最稠密的地图,包括孟加拉国和印度的三个地区:比哈尔邦,恰尔肯德邦和西孟加拉邦。这里的人口越3.9亿。 下面这张图,同样是将世界5%的人口进行极化分布制图,其中蓝色部分约占地球面积的72%。而地图上的17个红点则同样生活着约5%的人口。  

gis Leave a comment

ArcGIS for Server 10.3.X 新型紧凑型缓存的解读和应用 zz

原文地址:http://mp.weixin.qq.com/s?__biz=MzA4NjI0ODMyNA==&mid=400860148&idx=1&sn=ea65c230cc2fdcca1fb983dea0d1d453&scene=5&srcid=1127QN8qFNaaGaQ77sAGJkMp#rd 早在2010年年底,牛魔王在其博客空间(http://blog.csdn.net/warrenwyf/article/details/6069711 ) 中对ArcGIS 10中推出的紧凑型缓存格式进行了详细的解读。紧随着的4年时间里,ArcGIS for Server本身经历了10、10.1.X和10.2.X各版本的逐级更替,特别是软件架构发生了显著的变化。然而,就紧凑型缓存本身而言,牛魔王中王的解读一直都是适用的。衷心地向我们的大牛致敬! 直到2014年年底ArcGIS 10.3正式发布,Esri才推出了新的紧凑型缓存格式以增强用户的访问体验。新的缓存格式下,关键的差别在于Esri将缓存的索引信息.bundlx包含在了缓存的切片文件.bundle中。 接下来,我们就简单解读一下这一新型的紧凑型缓存格式。俗语说,万变不离其宗。既然缓存文件夹下仅包含了bundle文件,可以想见,切片的索引,切片的偏移和切片的图片流都必然包含在这一文件中。根据经验,缓存本身遵循的是16进制的形式。依照这一思路,利用UltraEdit打开bundle文件并以16进制格式进行查看。 为了便于分析,我们先创建一个在L00级只包含一个切片的缓存服务,并在UltraEdit中以16进制格式查看L00级下的R0000C0000.bundle文件。 通过对这一文件中信息存储规律的分析,可初步得出如下结论: 1) 文件中包含大量04 00 00 00 00 00 00 00的16进制字节组,共计16893组; 2) 文件中仅包含一个PNG24的文件头字节组89504E47,即第一行第一列的切片,bundle文件中唯一的一张图片。图片流紧随(1)中所提到的字节组之后,但偏移4个字节; 3) (2)中所述的4字节偏移量的数值恰等于图片流的长度; 4) 文件第5行的起始4个字节44 00 02 00按照低位到高位换算出的数值等于131140,这一值与(2)中所述的PNG文件头位置恰恰吻合。 综上分析: 1)起始4行是bundle的文件头信息,可忽略; 2)bundle的文件头之后记录了16384张切片的切片位置,仅4字节,从低位到高位,后4字节可忽略; 3)位置信息之后,对于切片的记录,先以4字节记录切片的长度,而后紧跟图片流信息。到此,bundle结束。 下一步呢,我们将选择一个狭长的矩形面要素发布服务并切图,以分析行列切片在bundle文件中的具体存储规律。 通过对bundle文件和对应的松散缓存在L02级别上的对比,可推断: 1)bundle中索引的存储是按行依次存储,即第1行的1至128,第2行的1至128,以此类推,直至最后一张切片即第128行128列; 2)bundle中图片流的存储仅包含非空切片。此外,通过对这一更复杂的地图缓存的分析,再次论证了前面的推论。 既然上述的分析完毕,接下来就要对上述的分析进行一番验证啦。这里呢,我会利用ArcGIS Runtime SDK for Android实现抽象理论的实践工作。本次验证的核心在于,通过对TiledServiceLayer进行扩展,按照上面的存储推论覆写getTile(intmLevel, int mColumn, int mRow)方法。 第一步,根据参数中的比例级别、列号和行号定位到Bundle文件。 1 String level = Integer.toString(mLevel); 2 int […]

ArcGIS Leave a comment

Esri 矢量底图介绍(Beta)

今年早些时候,Esri公布了在ArcGIS平台中引入矢量底图的计划并展示了预览版。随着ArcGIS Online在11月的更新,web map先已经支持矢量瓦片图层。作为更新的一部分,Esri已经提供了几种矢量地图,用户可以在webmap中使用。 几年以来,Esri一直提供图片格式的底图供用户使用,非常多用户在使用这些底图,但基于图片的底图有一些限制,例如用户无法自定义样式,对高分辨率设备支持不好等。因此Esri引入矢量切片的底图来解决这些问题。 矢量底图以矢量切片的方式提供,格式为pbf(MapBox定义),用户在客户端渲染数据。用户可以通过ArcGIS Pro 1.2来生成矢量切片。 随着ArcGIS Pro 1.2在2016年的发布,用户可以使用自己的数据生成矢量切片并托管到ArcGIS Server 10.4 或ArcGIS Online上。矢量底图目前只支持浏览器的渲染,将来会支持桌面的移动端设备,用户可以自定义样式来渲染矢量切片。 已经上线的矢量底图 目前已经上线的矢量底图使用同一个瓦片服务,但提供了8种样式,可以通过ArcGIS Online的Esri Vector Basemaps (Beta) 组来访问。 链接为:http://www.arcgis.com/home/group.html?id=30de8da907d240a0bccd5ad3ff25ef4a 矢量底图在Webmap中,既可以作为底图,也可以作为普通图层加载。 自定义矢量底图 用户可以自定义矢量底图的样式,通过编辑已经存在的矢量切片图层的样式文件,并重新发布的方式可以创建一个新的矢量切片图层。 重要提示 目前矢量底图处于Beta阶段,数据和样式文件的格式都有可能发生变化,因此用户创建的样式文件可能需要随之更新,请在项目中慎用。另外,和已经存在的底图一样,矢量底图对所有ArcGIS用户是免费使用的。

ArcGIS Leave a comment

高德位置纠偏服务

众所周知,国内地图都是经过偏移的数据,那么想要把用户自己的数据添加上去,必须通过偏移才可以。 目前高德提供了位置纠偏服务,但隐藏的比较深,在主页面上没有提供,在论坛中提供了相关API。 相关网址:http://lbsbbs.amap.com/forum.php?mod=viewthread&tid=724&highlight=%E5%9D%90%E6%A0%87%E8%BD%AC%E6%8D%A2 一.适用对象: 苦苦纠结于如何将GPS、mapbar、baidu坐标转换为高德坐标系的开发者们。 二.转换方法: 首先当然还是需要人手一个的百宝key。注意:权限君升级权限系统后,调用坐标转换接口的童鞋们需要重新申请。注意:绑定服务需选择web服务API: 2.      调用坐标转换接口,接口请求攻略如下: 1)  服务协议为GET请求 2)  请求地址:http://restapi.amap.com/v3/assistant/coordinate/convert?parameters 3)  请求参数: 名称 含义 规则说明 是否必须 key 用户唯一标识 官网申请,用户唯一标识 必填 locations 坐标点 经度和纬度用”,”分割,经度在前,纬度在后,经纬度小数点后不得超过6位。多个坐标点间用”;”进行分隔 必填 coordsys 原坐标系 可选值:gps;mapbar;baidu 请求坐标加密,返回加密结果。 必填 output 返回数据类型 可选值:json(默认),xml 可选 URL示例: http://restapi.amap.com/v3/assistant/coordinate/convert?locations=116.481499,39.990475&coordsys=gps&output=xml&key=您申请的key 3.      通过简单的http请求,即可以愉快地完成坐标转换的任务。

gis Leave a comment

iOS中给WebView写入cookie

在混合模式的开发过程中,用户在NativeApp中进行了登陆,但打开WebApp的时候还需要登陆,这就会造成较差的用户体验。 如果WebApp支持使用从Cookie验证的话,可以通过在NativeApp往WebView写入cookie的方式来解决该问题。 代码如下: NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary]; [cookieProperties setObject:@”testCookie” forKey:NSHTTPCookieName]; [cookieProperties setObject:@”someValue123456″ forKey:NSHTTPCookieValue]; [cookieProperties setObject:@”www.example.com” forKey:NSHTTPCookieDomain]; [cookieProperties setObject:@”www.example.com” forKey:NSHTTPCookieOriginURL]; [cookieProperties setObject:@”/” forKey:NSHTTPCookiePath]; [cookieProperties setObject:@”0″ forKey:NSHTTPCookieVersion]; // set expiration to one month from now or any NSDate of your choosing // this makes the cookie sessionless and it will persist across web sessions and app […]

iOS Leave a comment

ArcGIS开发权威指南 上架

《ArcGIS开发权威指南》内容提要 随着Web GIS 2.0时代的到来,单个研发技术的实施已经不能满足当前GIS项目的基本需求。如今用户既需要专业人士进行业务管理,又要求整个企业进行协作分享,而且还需要将信息通过网络或者移动端进行发布,这无疑需要多源技术的共同结合才能完成。那么从事GIS行业的开发者就需要了解GIS多源的开发技术。《ArcGIS开发权威指南》主要介绍ArcGIS平台及相关产品的开发模式,包括桌面端开发、Web端开发、移动端开发、数据库开发、脚本开发等主流的ArcGIS开发技术。 《ArcGIS开发权威指南》要求用户具有ArcGIS for Desktop、ArcGIS for Server、ArcSDE等ArcGIS产品相关基础,同时要求具有C#、Java、Python、JavaScript、PL/SQL等编程基础。《ArcGIS开发权威指南》适合ArcGIS开发工程师、GIS项目经理、GIS系统建设者,以及即将步入社会的相关专业学生阅读。 购买地址: 亚马逊  

ArcGIS Leave a comment