Monthly Archives: December 2013

datamaps 在windows环境下使用

由于自己的mac只有4g内存,跑datamaps的时候遇到大数据基本跑不动,幸好台式机是32g内存,装的win2008系统,于是尝试在windows上跑一下。 最初的想法是想直接把datamaps的源代码在vs2012 下面直接编译一下,结果一堆error,懒得去一个一个的fix,决定使用cygwin环境+gcc去编译。 1 首先下载cygwin,http://www.cygwin.com/  安装的时候一定要安装gcc-core,gcc,pk-config,make以及libpng-devel。 2 在https://github.com/barrycug/datamaps 下载datamaps 源代码,并解压,当然也可以用gitclone命令去下载 3 打开cygwin,并进入datamaps 目录,执行命令make,如图 4 make 成功之后就可以使用datamaps的命令来进行数据的处理了 5  ./encode -o ./gps -z 15 /cygdrive/d/data/simple-gps-points-120312.txt  会读取txt文件并生成索引,放到gps目录下面 6 生成一张地图 ./render -A ./gps 12 39.8 116.0 40.1 116.6 > beijing3.png  -A表示生成一张地图 ,39.8 116.0 40.1 116. 为北京的坐标范围 12 为显示级别 7 生成tile ,可以按照google style生成地图切片 enumerate -z14 ./gos| xargs -L1 -P8 ./render -o tiles/dirname […]

big data, Uncategorized Leave a comment

灯火图的制作

1 什么是灯火图? 灯火图是我起的名字,有点类似于晚上卫星拍到的地球夜景,根据灯光的亮度可以判断一个地区的经济发达程度。那么我们能不能用这种形式来表达其他的信息呢?比如LBS应用的签到信息?POI聚集?微博发帖位置? 2 灯火图的来源 最早见到灯火图是@王昊的微地图发的一组地图,包括后面@GeoQ发的收费站地图,后来挖掘了一下,发现最早是有Eric  fischer 基于Flickr地理标签做的图,链接在此: http://www.tweeterstreet.com/blog/tweeter-world/geo-tagged-twitter-flickr-map.html 3 那么这种效果的图是如何制作的呢,Eric  fischer  是个好同志,在github上分享了他的代码。https://github.com/ericfischer/datamaps 由于处理的数据可能非常大,Eric  fischer  的方法是给每个地理位置按照四叉树编码并排序,然后按照级别生成tile(google schema) datamaps 的使用方法在github上都有,就不具体介绍了。 tile生成好之后,我们就可以把这些文件通过tomcat或者Apache发布出去 tile 有了之后,可以使用mapbox的js API 开发一个简单的地图应用,叠加mapbox黑色风格的底图用来凸显灯光的效果。 简单的代码如下, <code> <html> <head> <meta charset=utf-8 /> <title>Theme</title> <meta name=’viewport’ content=’width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no’ /> <script src=’//api.tiles.mapbox.com/mapbox.js/v1.5.1/mapbox.js’></script> <link href=’//api.tiles.mapbox.com/mapbox.js/v1.5.1/mapbox.css’ rel=’stylesheet’ /> <style> body { margin:0; padding:0; } #map { position:absolute; top:0; […]

big data Leave a comment

Objective-C中类动态添加方法

需求场景: 在某种条件触发下,该类才能响应某方法 实现方法: 使用class_addMethod方法添加 class_addMethod([self class], @selector(locationManager:didUpdateLocations:), (IMP)didUpdateLocations, “v@:@”); 然后实现didUpdateLocations方法 static void didUpdateLocations(id self, SEL _cmd, id manager,id locations) { [self ImpllocationManager:manager didUpdateLocations:locations]; }  

iOS Leave a comment