![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Geoserver&OpenLayers系列
文章平均质量分 69
longshengguoji
这个作者很懒,什么都没留下…
展开
-
GeoHash核心原理解析
http://www.cnblogs.com/LBSer/p/3310455.html引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半转载 2016-03-14 11:02:05 · 1246 阅读 · 0 评论 -
电子地图中要素旋转功能实现
添加到电子地图上的资源点经常需要对其进行旋转操作。本文主要讲解如何基于openlayers2往地图中添加资源点,并实现资源点的旋转操作。 往地图上面添加资源点图标主要有两种方式,一种是通过markers方式,利用的接口为OpenLayers.Layer.Markers。通过marker方式往地图上添加图标的示例代码如下: var markers = new OpenLayers.原创 2015-10-13 19:43:05 · 3121 阅读 · 1 评论 -
bat脚本自动扫描制定文件夹下shp文件,并导入数据库,然后执行空间操作
GIS地图功能是现在越来越多项目的标配,但是商业的的arcgis软件太贵,开源的又有各种复杂的配置,如何简化这种配置呢,那就是使用脚本扫描知道文件夹下的文件,把扫描到的shp数据导入指定的空间数据库,然后对数据库中的不同表格执行不同的空间操作。@echo offecho pms map data inputset PSQLPATH="C:\Program Files (x86)\Postg原创 2015-09-15 21:31:18 · 2315 阅读 · 0 评论 -
WGS84 GCJ02和BD09坐标系相互转换代码
var GPS = { PI : 3.14159265358979324, x_pi : 3.14159265358979324 * 3000.0 / 180.0, delta : function (lat, lon) { // Krasovsky 1940 // // a = 6378245.0, 1/f = 298.3原创 2015-10-14 18:03:54 · 7842 阅读 · 1 评论 -
openlayers中设置地图缩放级别
在实际项目中,好多地图不需要从第0级开始缩放,因为第0级地图太小了,没有实际意义。那么就需要设置从中间某个级别开始缩放。该如何做呢。由于openlayrs2中没有直接属性进行控制,也因此需要自己注册事件通过监听事件来控制地图的最小缩放级别。对于openlayers3来说,直接通过view的属性进行控制即可。openlayers中需要注册缩放事件来解决,在该事件中监听缩放后地图的级别,当地图级别原创 2015-10-09 20:14:57 · 23907 阅读 · 3 评论 -
基于pgrouting的路径规划之一
最近接触pgrouting。把学习的结果记录下来。利用pgrouting进行路径规划只能导入line数据,mutiline会出错。这一点在进行数据导入的时候需要注意。一、创建数据库有两种方法:1.pgadmin可视化工具创建直接把数据道路postgis模版数据库或以postgis模版数据库为模版创建数据库,这样创建的数据库直接支持空间查询和空间分析。2.命令行创建数据库原创 2015-05-07 19:43:29 · 10121 阅读 · 11 评论 -
openlayers2中selectcontrol用法
在做电子地图项目中,一个基本的功能就是要能对地图上面的资源点进行选中,进而进行进一步的操作。那如何对地图的资源点进行选择呢?如果你的资源点图层是vector图层,那么你就可以用OpenLayers.Control.SelectFeature控件来进行操作。OpenLayers.Control.SelectFeature控件可以对资源点进行悬浮选择,框选等操作。下面代码段是对parkingLay原创 2015-09-29 20:00:36 · 2309 阅读 · 1 评论 -
postgresql 可调试
在用postgresql的时候需要经常需要对存储过程进行调试,那么怎么样设置postgresql可调试呢?1.已管理员身份登陆postgresql,单击工具-->服务器配置-->postgresql.conf.2.在弹出的配置窗口中,双击shared_preload_libraries选项3.在弹出的配置设置shared_debugger.dll对话框中,旋转启用选项,原创 2015-09-05 12:15:13 · 1928 阅读 · 0 评论 -
openlayers3 通过wfs请求方式添加矢量vector图层
function getParkingLayerFunc(mapUrl,parkingLayerName){ //获取该坐标系下地图边界 var projectionExtent = ****.projection.getExtent(); var namespace = ****.mapSpace; //wfs请求获取矢量图层gml数据信息 ****.vectorSource = new原创 2015-09-11 21:21:42 · 8007 阅读 · 1 评论 -
openlayers2 wfs方式加载矢量图层
在地图中为了增强交互效果,需要加载一层矢量地图。如何通过请求wfs的方式加载矢量地图呢?function getParkingLayerFunc(mapUrl,parkingLayerName,onComplete){ //获取地图对象 var map = ****.getMap(); //矢量图层默认状态下的style var defaultStyle = new OpenLay原创 2015-09-11 21:18:26 · 2973 阅读 · 0 评论 -
Postgis常用函数
1,基本操作函数AddGeometryColumn(, ,, , , )给一个已存在属性数据表增加一个几何字段(geomtrycolumn)。schema_name 指表的模式的名字,srid 必须是一个整数指对应于 SPATIAL_REF_SYS 表,type必须是一个大写的字符串,用来描述几何类型,例如:'POLYGON' 或者 'MULTILINESTRING'。DropGeom原创 2015-08-06 19:46:24 · 8779 阅读 · 2 评论 -
openlayers加载切片地图
使用的软件是tilemile。openlayers2和openlayers3加载切片地图使用的接口是不同的。下面做分析。openlayers2:layerName为图层名字,tileUrl为切片所在路径function getTileLayerFunc(layerName,tileUrl){ var mapMinZoom = 16; var mapMaxZoom = 23;原创 2015-09-24 19:30:11 · 11512 阅读 · 2 评论 -
geoserver中sld设置
geoserver是应用很广的地图服务器,但是如何在geoserver中设置随着比例尺变化而变化的地图样式呢?这就要自己写geoserver的sld了 。下面的样式是为室内地图的面要素设置的,该面要素的label标签会随着比例尺的变化而改变字体,且该label标签会根据图层的lblrotate属性进行旋转。原创 2015-12-22 20:24:46 · 6176 阅读 · 0 评论 -
基于geoserver的伪三维地图制作
小伙伴在用百度高德这类地图的时候有木有发现当地图放大到一定倍数之后就会出现三维效果(2.5伪)。作为一个爱寻根究底的人,我们一定会问,这种地图是如何实现的呢?基于arcgis或者超图吗?NONONO,这类软件太贵!基于Unity3D这类开源的三维引擎做的?NONONO,这是真三维地图。笔者的原则就是能用开源软件就绝不会用商业软件。由于现在主流的制作web地图的开源软件是geoserver+open原创 2016-03-29 19:36:17 · 12542 阅读 · 7 评论 -
地图标注随地图旋转而旋转
停车场地图添加停车位编号随地图旋转而旋转功能现在移动互联网上的交互性很强,要求地图也要360度旋转。但是地图在360度旋转的时候就会出现一个问题,那就是地图选择180度的时候,地图上面的文字也旋转180度,这个时候字就是倒过来的,虽然从逻辑上来讲是正确的,但是从人的角度讲,我把地图旋转180度难道就要让我歪着头去看上面的文字吗?这是肯定不行的嘛。 对于这个问题我们有两个解决方案: * 标注文字不原创 2016-12-13 10:41:11 · 4074 阅读 · 1 评论 -
geoserver地图跨域解决方案
1.由于geoserver为war形式,需要解决tomcat跨域问题2.下载war包,下载cors-filter-1.7.jar,java-property-utils-1.9.jar这两个库文件,放到lib目录下下载地址为:http://download.csdn.net/detail/longshengguoji/96943773.修改配置文件修改geo原创 2016-11-26 16:58:45 · 5640 阅读 · 3 评论 -
按比例缩放的geoserver组合样式编写
在编写地图样式的时候可以根据地图数据的某个属性决定要显示的图标样式,根据地图比例尺决定地图图标的大小。但是如何既根据属性显示图标样式同时又根据比例尺决定图标大小呢?正常的逻辑肯定是双层for循环的思路,即两层。但是用这种方式geoserver会报错。那就只有把双层for循环改成单层循环了,即只用一层rule.原创 2016-05-30 19:01:50 · 3998 阅读 · 0 评论 -
geoserver默认密码修改
geoserver默认登陆密码修改 geoserver是现在常用的webgis服务器,但是由于其默认的登录用户名和密码为admin,geoserver。这对安全性要求较高的系统会带来安全性问题。所以需要修改geoserver默认的登录密码。如何修改呢? 首先登录geoserver首页。在security栏下点击users,groups,roles链接,原创 2016-04-14 18:33:47 · 9679 阅读 · 1 评论 -
百度地图获取行政范围边界
在做地图开发的时候经常需要获取行政区划的边界,下面的网页可以满足如下功能,输入城市区划名,点击查看范围即可 body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";} #panel{原创 2016-03-15 17:38:24 · 12162 阅读 · 6 评论 -
wfs方式获取最短路径
之前有几篇文章结束基于pgrouting的最短路径规范,获取最短路径用的是wms方式,这样的好处就是路径样式可以预先是geoserver中设置好,且路径渲染由geoserver在后台渲染。但是用户的需求是无穷无尽的,加入用户要求结果路径的样式需要动环效果该怎么做呢? Wms方式获取的地图是后台渲染好的图片,如果要在前端做出动画效果,就需要用wfs的方式来请求最短路径了,这样做的原创 2016-03-08 10:22:46 · 3274 阅读 · 4 评论 -
通过sqlview动态发布地图图层
1.SQL Views简介Geoserver+postgresql+openlayers(leaflet)是目前主流的gis开发工具。Postgresql用于存储地图数据,geoserver用于发布地图数据,openlayers或者leaflet用于访问发布地图。正常情况下当shapefile格式的数据导入postgresql数据库中之后,我们需要通过geoserver把所有的数据发布出去,这原创 2016-03-08 10:07:49 · 3519 阅读 · 2 评论 -
openlayers限制地图拖动区域
现在做webgis基本都会用到openlayers或者leaflet。那么在显示地图的时候,特别是显示小区域地图的时候,由于地图区域较小,就会存在把地图拖动到显示区域之外的现象。那么该如何限制地图拖动的区域呢。 在openlayers2中有restrictedExtent属性,直接设置下即可。var options = { controls : [原创 2015-10-09 15:30:29 · 10852 阅读 · 1 评论 -
铁路样式sld
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-原创 2016-02-19 14:17:56 · 2350 阅读 · 0 评论 -
旋转geoserver发布的wms地图
以前都是以为访问geoserver发布的wms地图是不能旋转的,旋转要通过wfs的方式来访问地图。现在通过wms方式也可以使地图旋转。方法就是在正常的访问地图url后面加上&angle=XXX即可。http://10.33.31.14:89/geoserver/parking/wms?service=WMS&version=1.1.0&request=GetMap&layers=parki原创 2016-02-19 14:06:05 · 1509 阅读 · 0 评论 -
openlayers3添加地图控件
//添加属性控件map.addControl(new ol.control.Attribution());//添加鼠标定位控件map.addControl(new ol.control.MousePosition({ undefinedHTML: 'outside', projection: 'EPSG:4326', coordinateFormat:原创 2015-07-16 19:40:14 · 10481 阅读 · 3 评论 -
Openlayers3 计算地图上任意两点间的距离
openlayers3计算地图上任意两点直接的距离原创 2015-06-27 20:13:51 · 8352 阅读 · 3 评论 -
百度地图三维效果实现
之前用百度地图都是用的二维地图,现在发现百度地图支持三维效果,欲实现三维效果只需添加如下两句代码即可: map.setMapType(BMAP_PERSPECTIVE_MAP); //修改地图类型为3D地图 map.setCurrentCity("北京市"); //设置当前城市,整体代码如下: body, html {width: 10原创 2014-10-13 17:48:04 · 29706 阅读 · 6 评论 -
OpenLayers访问Geoserver发布的地图
上一篇文章基于Geoserver发布了一个18个图层的地图,本文介绍如何利用OpenLayers访问Geoserver发布的地图。要访问Geoserver发布的地图,主要困难点是地图URL地址的确定,方法是打开Geoserver,在LayerPreview中找到要访问的地图,单击该地图后面的OpenLayers,如下图所示这时客户端会调用OpenLayers访问该地图,如下图所示原创 2014-09-27 09:10:58 · 28653 阅读 · 8 评论 -
OpenLayers中长度测量和面积测量等功能的实现2
本文演示用另一种方法实现测量功能。先上结果图功能实现:1. 界面制作在HTMLbody主体中添加相应代码为: 球面测量原创 2014-09-27 09:49:27 · 4259 阅读 · 0 评论 -
OpenLayers跨域请求WFS服务在Tomcat环境下的实现
由于项目的地图数据放在不同的服务器上面,因此进行POI搜索和路径导航的时候需要进行跨域检索,容器环境用的是Tomcat 7.0.53.配置跨域请求的步骤为:1. 下载Proxy.cgi,或者到Openlayers的安装目录中,安装盘符\OpenLayers-2.13.1\examples中查找,或者直接拷贝本文下面的代码到proxy.cgi文件中。并修改allowedHosts,添加需要访问的原创 2014-09-27 09:25:22 · 5822 阅读 · 2 评论 -
OpenLayers中长度测量和面积测量等功能的实现
功能要求如下:要求能在给定地图上测量长度和面积。此处实现主要是调用Openlayers接口实现。一、界面设置在HTML界面中设置好测量按钮的布局,代码如下图所示: 测量 长度: 面积: 选择 球面:原创 2014-09-27 09:32:19 · 10043 阅读 · 1 评论 -
Openlayers中layer介绍
1.base layers & overlay layersbase layer:最底层的layer,其他的图层是在他之上,最先加入的图层默认作为base layer.overlay layer:不是base layer的layer就是overlay layer2.使用layer的步骤: 创建layer把layer添加到Map中,可以用map.addlayer(layer原创 2014-09-02 00:16:22 · 11326 阅读 · 0 评论 -
Hello Openlayers
由于项目需要,需要用到geoserver和openlayers,再此将对openlayers的学习记录下来。学习Openlayers的第一步是要熟悉javascript语法。1.什么是openlayers OpenLayers是用于制作交互式Web地图的开源客户端JavaScript类库,制作的地图几乎可以在所有的浏览器中查看。因为是客户端类库,它不需要特殊的服务器端软件或配置,甚至原创 2014-08-31 14:31:52 · 2989 阅读 · 0 评论 -
OpenStreetMap架构
OpenStreetMap框架介绍1.OSM平台开发OpenStreetMap(简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。OSM的地图由用户根据手提GPS装置、航空摄影照片、其他自由内容甚至单靠地方智慧绘制。网站里的地图图像及向量数据皆以共享创意姓名标示-相同方式分享2.0授权。OSM网站的灵感来自维基百科等网站。这可从该网地图页的“编辑原创 2014-08-31 09:51:17 · 15308 阅读 · 2 评论 -
Ubuntu 14.04安装地里编码软件Nominatim过程
一.必须软件:在Ubuntu系统编译运行Nominatim软件系统必须安装的软件有:1.GCC 编译器2.postgresql 数据库3.proj44.geos5.postgis 6.PHP7.PHP-pgsql8.PEAR::DB9.protobuf10.wget11.osmis二.安装必须的软件包Apt-get install b原创 2014-08-13 17:33:02 · 3681 阅读 · 2 评论 -
基于Geoserver发布地图
Geoserver是著名的开源GIS软件之一。也是项目中常用的地图服务软件。基于geoserver和Openlayers就可以构建一个免费的开源GIS项目。Geoserver发布地图的步骤为:1. Geoserver启动启动Geoserver,并登陆。登陆后界面如图所示2. 新建工作区。单击数据栏下的工作区,建立新的工作区,如下图所示,在Name原创 2014-09-18 20:30:28 · 35314 阅读 · 4 评论 -
基于OpenLayers的地图应用中图标汉化
在OpenLayers中图标默认是英文的,但是作为中国人,且做出来的地图产品主要是面向中国人,英文的图标对我们来说自然是不可接受的,因此需要对其进行汉化。这个功能做起来也很简单。只需要添加如下几个语句即可:OpenLayers.INCHES_PER_UNIT["千米"]=OpenLayers.INCHES_PER_UNIT["km"]; OpenLayers.INCHES_PER_UNIT[原创 2014-11-27 19:26:19 · 2563 阅读 · 1 评论 -
基于GDAL的点数据保存
保存数据的第一步是要把数据解析出来,然后根据GDAL的规则进行数据point类型的shapefile数据生成。大概步骤为:一、定义保存点要素数据的类这里定义了两个基类://基类,保存要素类型,点、线、面class Element{private: char Type; int Code;public: Element(void); ~Element(void); v原创 2015-02-03 20:55:23 · 2402 阅读 · 0 评论 -
基于GDAL的线数据保存
保存数据的第一步是要把数据解析出来,然后根据GDAL的规则进行数据point类型的shapefile数据生成。大概步骤为:一、定义保存点要素数据的类这里定义了两个基类://基类,保存要素类型,点、线、面class Element{private: char Type; int Code;public: Element(void); ~Eleme原创 2015-02-03 21:00:44 · 2042 阅读 · 0 评论 -
pgrouting允许远程访问配置
postgresql默认情况下不允许远程访问。如果需要允许远程访问,需要修改两个配置文件。具体步骤为:1.postgresql.conf文件修改将该文件中的listen_address项值设定为"*"2.pg_hba.conf文件修改在该配置文件的host all all 127.0.0.1/32 md5 行下添加以下配置,或者直接将这一行修改为以下配置host all原创 2015-07-07 18:45:42 · 1267 阅读 · 0 评论