Archive for the Category: gis

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

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

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请求,即可以愉快地完成坐标转换的任务。

Leave a comment

高斯坐标计算器App上线

下载地址:https://itunes.apple.com/us/app/gao-si-zuo-biao-ji-suan-qi/id1001469566?ls=1&mt=8 主要特征: 1支持输入经纬度直接在地图上定位。 2 支持长按地图拾取坐标。 3 根据用户位置、用户输入的经纬度和用户拾取的坐标计算对应的3度分带和6度分带的高斯坐标、带号和中央经线。 4支持将计算结果通过邮件分享。 5 支持标准、影像和混合地图的切换。 注意:高斯坐标仅在中国范围内有效。 系统截图:  

Leave a comment

使用QGIS的脚本批量进行clip操作

在QGIS中本身提供了批量执行clip的工具,但是在设置输出参数的时候需要一个一个的输入,很麻烦,并且容易出错,特别是在图层要按地区不停的clip的时候,简直是无法忍受,还好可以自定义脚本,脚本如下: input=r’/Users/a/Documents/data/shp/’ output=r’/Users/a/Documents/data/clip/’ admin=r’/Users/a/Documents/data/admin.shp’ processing.runalg(“qgis:clip”, admin,input+’a.shp’,output+’a.shp’) processing.runalg(“qgis:clip”, admin,input+’b.shp’,output+’b.shp’) processing.runalg(“qgis:clip”, admin,input+’c.shp’,output+’c.shp’) processing.runalg(“qgis:clip”, admin,input+’d.shp’,output+’d.shp’) processing.runalg(“qgis:clip”, admin,input+’e.shp’,output+’e.shp’) processing.runalg(“qgis:clip”, admin,input+’f.shp’,output+’f.shp’) processing.runalg(“qgis:clip”, admin,input+’g.shp’,output+’g.shp’) processing.runalg(“qgis:clip”, admin,input+’h.shp’,output+’h.shp’) 使用该脚本的时候,只要重新设置一下目录和clip图层即可批量完成。 同样的对于批量投影等操作也可以这么操作。 使用ogr2ogr工具也可以实现通过python脚本批量clip,但由于实在是太慢,无法忍受,遂放弃。

Leave a comment

使用GDAL/OGR包+python将CSV转成shapefile并投影

在处理数据的时候,很多时候原始数据都是csv格式,分析的时候使用shapefile比较方便。特别是在mac系统上没有arcgis,处理大量数据的时候用qgis一个一个点很麻烦,于是写了个python脚本处理。 首先安装gdal的python安装包: sudo easy_install GDAL 安装好之后就可以使用GDAL/OGR来进行数据处理了,脚本如下: import osgeo.ogr as ogr import osgeo.osr as osr from osgeo import gdal import csv def poiMake(csvpath,shp,layerName): gdal.SetConfigOption(“GDAL_FILENAME_IS_UTF8″,”NO”) gdal.SetConfigOption(“SHAPE_ENCODING”,””) source = osr.SpatialReference() source.ImportFromEPSG(4326) target = osr.SpatialReference() target.ImportFromEPSG(3857) reader = csv.DictReader(open(csvpath,”rb”),delimiter=’,’,quoting=csv.QUOTE_MINIMAL) driver = ogr.GetDriverByName(“ESRI Shapefile”) data_source = driver.CreateDataSource(shp) layer = data_source.CreateLayer(layerName, target, ogr.wkbPoint) field_name = ogr.FieldDefn(“en”, ogr.OFTString) field_name.SetWidth(100) layer.CreateField(field_name) field_cn = […]

Leave a comment

坐标拾取器App上线

AppStroe 地址: https://itunes.apple.com/us/app/zuo-biao-shi-qu-qi/id989627915?ls=1&mt=8 1支持输入经纬度直接在地图上定位。 2 支持长按地图拾取坐标。 3 根据用户位置、用户输入的经纬度和用户拾取的坐标计算对应的高斯坐标、国家标准图幅号和对应的地址。 4支持将拾取结果通过邮件分享。 5 支持标准、影像和混合地图的切换。 扫二维码下载

Also posted in ios app Leave a comment

spatialite使用空间索引

spatialite提供了R*tree索引。 spatialite的空间索引需要显式的调用,而不像postGIS等那样默认调用。spatialite的空间索引是基于sqlite的virtual table技术实现的。 要使用spatialite的空间索引,首先要创建SpatialIndex表 CREATE VIRTUAL TABLE SpatialIndex USING VirtualSpatialIndex(); 创建索引: SELECT CreateSpatialIndex(‘councils’,’Geometry’) 使用索引: SELECT c.Name AS Name, SUM(s.sales) AS “Total Sales” FROM councils AS c, stores AS s WHERE ST_Contains(c.Geometry, s.Geometry) AND s.ROWID IN (SELECT ROWID FROM SpatialIndex WHERE f_table_name=’stores’ AND search_frame=c.Geometry) GROUP BY c.pk_uid; 注意,空间索引的显式调用 s.ROWID IN (SELECT ROWID FROM SpatialIndex WHERE f_table_name=’stores’ […]

Leave a comment

spatialite 介绍

spatialite 是一个基于sqlite的开源类库,改类库实现了sqlite的空间扩展,支持sql语句的空间操作。 目前spatialite的最新版本是3.0.1,官方主页为http://www.gaia-gis.it/gaia-sins/ 对于目前如火如荼的移动互联网来说,大部分移动平台都内置提供了sqlite的存储和访问,因此我们可以把spatialite编译到移动平台上,这样移动平台就有了空间数据的支持,并通过比较友好的方式进行数据的读取和存储。

Also posted in spatialite 1 Comment

自定义UISearchBar

UISearchBar是在iOS开发中经常用到的一个组件,那么我们如何来实现一个类似AMAP中的SearchBar呢? 我们可以首先来观察一下,这个searchBar和默认的有什么区别? 默认的SearchBar,如下图: 首先有起点和终点这样的文字提示,默认的是一个搜索图标。 其次是文本框的边框是圆角矩形,默认的是圆角为半圆型。 那么我们实现自定义的UISearchBar就需要修改这两项。 实现的方式就是重新实现UISearchBar的layoutSubviews方法 – (void)layoutSubviews { UITextField *searchField; NSUInteger numViews = [self.subviews count]; for(int i = 0; i < numViews; i++) { if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform? searchField = [self.subviews objectAtIndex:i]; } } if(!(searchField == nil)) { searchField.textColor = [UIColor redColor]; // [searchField setBackground: [UIImage imageNamed:@”esri.png”] ]; [searchField setBorderStyle:UITextBorderStyleRoundedRect]; UIImage […]

Also posted in ArcGIS, ArcGIS API for iOS, esri, iOS, iPad, iPhone4, Mac OS X Leave a comment

动态标绘演示系统v2.0(Silverlight版) 演示视频

动态标绘演示系统v2.0(Silverlight版)主要用来满足各行业WebGIS系统中对动态标绘的需求而开发。该系统基于动态标绘API(Plot API)开发。 动态标绘演示系统v2.0(Silverlight版)是基于ArcGIS API for Silverlight实现的一套功能组件。通过扩展,Plot API实现了类似ArcGIS API for Silverlight中DrawTooll的功能,可绘制、编辑(包括对标绘图形的旋转、缩放等)各种标绘图形,具有很强的灵活性和交互性。 Plot API提供了包括箭标、旗标、区域标绘等11种标绘图形。Plot API封装了标绘图形接口和标绘基础算法,基于此可快速扩展实现API中未提供的标绘图形。

Also posted in ArcGIS API for silverlight, esri, RIA Leave a comment