﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zhyiwww -随笔分类-Postgis</title><link>http://www.blogjava.net/zhyiwww/category/37784.html</link><description>用平实的笔，记录编程路上的点点滴滴………</description><language>zh-cn</language><lastBuildDate>Tue, 25 Aug 2009 19:48:53 GMT</lastBuildDate><pubDate>Tue, 25 Aug 2009 19:48:53 GMT</pubDate><ttl>60</ttl><item><title>mapserver-给道路添加label</title><link>http://www.blogjava.net/zhyiwww/archive/2009/08/25/292550.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Tue, 25 Aug 2009 11:54:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2009/08/25/292550.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/292550.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2009/08/25/292550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/292550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/292550.html</trackback:ping><description><![CDATA[<br />
Mapfile中,需要使用如下配置:<br />
<br />
(1)在LAYER中添加LABEL所用的数据字段<br />
&nbsp;<br />
LABELITEM "pathname"<br />
<br />
(2)在MAP中添加字体引用<br />
<br />
FONTSET "fonts/fonts-lite.list"<br />
<br />
(3)在CLASS中添加LABEL设置<br />
<br />
LABEL<br />
<br />
&nbsp; FONT "msyh"<br />
&nbsp; ENCODING GB2312<br />
&nbsp; TYPE TRUETYPE<br />
&nbsp; COLOR 250 20 20<br />
&nbsp; SIZE 8<br />
&nbsp; POSITION uc<br />
&nbsp; ANGLE 25<br />
&nbsp; PARTIALS FALSE<br />
&nbsp; BUFFER 60<br />
END<br />
<br />
效果如下图:<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/zhyiwww/gis/road_label.JPG" alt="" border="0" /><br />
<br />
<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/292550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2009-08-25 19:54 <a href="http://www.blogjava.net/zhyiwww/archive/2009/08/25/292550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shp2pgsql的SRID参数</title><link>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286275.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 10 Jul 2009 08:31:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286275.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/286275.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/286275.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/286275.html</trackback:ping><description><![CDATA[#shp2pgsql Rbeijing Rbeijing &gt;  rbeijing.sql<br />导出文件如下：<br />     1 BEGIN;<br />     2 CREATE TABLE "rbeijing" (gid serial PRIMARY KEY,<br />     3 "mapid" varchar(8),<br />     4 "id" varchar(13),<br />     5 "kind_num" varchar(2),<br />     6 "kind" varchar(23),<br />     7 "width" varchar(3),<br />     8 "direction" varchar(150),<br />     9 "const_st" varchar(1),<br />    10 "pathname" varchar(40),<br />    11 "pathpy" varchar(250),<br />    12 "snodeid" varchar(13),<br />    13 "enodeid" varchar(13),<br />    14 "pathclass" varchar(2),<br />    15 "pathno" varchar(13));<br />    16 SELECT AddGeometryColumn('','rbeijing','the_geom',<font color="#ff0000" size="6"><b>'-1'</b></font>,'MULTILINESTRING',2);<br /><br />7 INSERT INTO "rbeijing" ("mapid","id","kind_num","kind","width","direction","const_st","pathname","pathpy","snodeid","enodeid","pathclass","pathno",th       e_geom) VALUES ('595525','59552500001','1','0401','55','0','1',NULL,NULL,'59552500003','59552500136','2','0','010500000001000000010200000007000000BD5       296218EED5C40D844662E70C7434069C4CC3E8FED5C40103FFF3D78C743405DFC6D4F90ED5C40897956D28AC743405DFC6D4F90ED5C405D6DC5FEB2C74340A374E95F92ED5C40A587A1D5       C9C743400806103E94ED5C40AB9509BFD4C74340DCD6169E97ED5C405CAD1397E3C74340');<br /><br /><br /><br />#shp2pgsql -s 4326 Rbeijing Rbeijing &gt;  rbeijing.sql<br />导出文件如下：<br />     1 BEGIN;<br />     2 CREATE TABLE "rbeijing" (gid serial PRIMARY KEY,<br />     3 "mapid" varchar(8),<br />     4 "id" varchar(13),<br />     5 "kind_num" varchar(2),<br />     6 "kind" varchar(23),<br />     7 "width" varchar(3),<br />     8 "direction" varchar(150),<br />     9 "const_st" varchar(1),<br />    10 "pathname" varchar(40),<br />    11 "pathpy" varchar(250),<br />    12 "snodeid" varchar(13),<br />    13 "enodeid" varchar(13),<br />    14 "pathclass" varchar(2),<br />    15 "pathno" varchar(13));<br />    16 SELECT AddGeometryColumn('','rbeijing','the_geom',<font color="#0000ff"><b><font size="6">'4326'</font></b></font>,'MULTILINESTRING',2);<br /><br />INSERT INTO "rbeijing" ("mapid","id","kind_num","kind","width","direction","const_st","pathname","pathpy","snodeid","enodeid","pathclass","pathno",the       _geom) VALUES ('595525','59552500001','1','0401','55','0','1',NULL,NULL,'59552500003','59552500136','2','0','SRID=4326;0105000000010000000102000000070       00000BD5296218EED5C40D844662E70C7434069C4CC3E8FED5C40103FFF3D78C743405DFC6D4F90ED5C40897956D28AC743405DFC6D4F90ED5C405D6DC5FEB2C74340A374E95F92ED5C40A       587A1D5C9C743400806103E94ED5C40AB9509BFD4C74340DCD6169E97ED5C405CAD1397E3C74340');<br /><br /><br />粗体部分是最主要的区别点。geom字段的值会因为SRID的不同而不同。<br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/286275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2009-07-10 16:31 <a href="http://www.blogjava.net/zhyiwww/archive/2009/07/10/286275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>postgis学习</title><link>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286270.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 10 Jul 2009 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286270.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/286270.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2009/07/10/286270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/286270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/286270.html</trackback:ping><description><![CDATA[#create table gtest(id serial);<br />#select AddGeometryColumn('','gtest','geom',4326,'LINESTRING',2);<br /><br /><br /># INSERT INTO gtest (ID, NAME, GEOM)<br />VALUES (<br />   1,<br />   ’First Geometry’,<br />   GeomFromText(’LINESTRING(2 3,4 5,6 5,7 8)’, -1)<br />);<br /><br /><br /># select astext(geom) as geom from gtest;<br />              geom               <br />---------------------------------<br /> LINESTRING(2 3,4 5)<br /> LINESTRING(2 3,4 5,5 6)<br /> LINESTRING(2 3,4 5,5 6,3 5)<br /> LINESTRING(2 3,4 5,5 6,3 5,1 6)<br />(4 rows)<br /><br /># create index idx_geom on gtest using GIST(geom);<br />CREATE INDEX<br /><br /># select asbinary(geom) as geom from gtest;<br />                                                                                                                                                                  geom                                                                                                                                                                  <br />----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br /> \001\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@<br /> \001\002\000\000\000\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@<br /> \001\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@\000\000\000\000\000\000\010@\000\000\000\000\000\000\024@<br /> \001\002\000\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@\000\000\000\000\000\000\010@\000\000\000\000\000\000\024@\000\000\000\000\000\000\360?\000\000\000\000\000\000\030@<br />(4 rows)<br /><br /># select GeomFromText('POINT(116.8839 36.88299)',900913);<br />                    geomfromtext                    <br />----------------------------------------------------<br /> 010100002031BF0D00CD3B4ED191385D40F758FAD005714240<br />(1 row)<br /><br /><br /># select asEWKB(geom) as geom from gtest;<br />                                                                                                                                                                        geom                                                                                                                                                                         <br />-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br /> \001\002\000\000 \346\020\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@<br /> \001\002\000\000 \346\020\000\000\003\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@<br /> \001\002\000\000 \346\020\000\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@\000\000\000\000\000\000\010@\000\000\000\000\000\000\024@<br /> \001\002\000\000 \346\020\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\010@\000\000\000\000\000\000\020@\000\000\000\000\000\000\024@\000\000\000\000\000\000\024@\000\000\000\000\000\000\030@\000\000\000\000\000\000\010@\000\000\000\000\000\000\024@\000\000\000\000\000\000\360?\000\000\000\000\000\000\030@<br />(4 rows)<br /><br /># select asEWKT(geom) as geom from gtest;<br />                   geom                    <br />-------------------------------------------<br /> SRID=4326;LINESTRING(2 3,4 5)<br /> SRID=4326;LINESTRING(2 3,4 5,5 6)<br /> SRID=4326;LINESTRING(2 3,4 5,5 6,3 5)<br /> SRID=4326;LINESTRING(2 3,4 5,5 6,3 5,1 6)<br />(4 rows)<br /><br /># select GeomFromEWKT('SRID=4326;POINT(119.8782 36.29288)');<br />                    geomfromewkt                    <br />----------------------------------------------------<br /> 0101000020E610000039D6C56D34F85D4084D382177D254240<br />(1 row)<br /><br /># select GeomFromEWKT('SRID=900913;POINT(119.8782 36.29288)');<br />                    geomfromewkt                    <br />----------------------------------------------------<br /> 010100002031BF0D0039D6C56D34F85D4084D382177D254240<br />(1 row)<br /><br /><br /># select 'SRID=4326;POINT(119.28983 36.99289)'::geometry;<br />                      geometry                      <br />----------------------------------------------------<br /> 0101000020E610000094D920938CD25D404243FF04177F4240<br />(1 row)<br /><br /># select 'SRID=900913;POINT(119.28983 36.99289)'::geometry;<br />                      geometry                      <br />----------------------------------------------------<br /> 010100002031BF0D0094D920938CD25D404243FF04177F4240<br />(1 row)<br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/286270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2009-07-10 15:49 <a href="http://www.blogjava.net/zhyiwww/archive/2009/07/10/286270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让postgis支持900913投影</title><link>http://www.blogjava.net/zhyiwww/archive/2009/07/09/286125.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Thu, 09 Jul 2009 09:57:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2009/07/09/286125.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/286125.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2009/07/09/286125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/286125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/286125.html</trackback:ping><description><![CDATA[
		<pre># insert into spatial_ref_sys VALUES (900913, 'EPSG', 900913, '', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs');<br /><br /><br />gisdb=# select astext(transform(geomfromtext('POINT(116.78787 39.29983)',4326),900913));<br />                 astext                  <br />-----------------------------------------<br /> POINT(13000766.219231 4764711.10113251)<br />(1 row)<br /><br />zydb=# select astext(transform(geomfromtext('POINT(116.78787 39.29983)',4326),32650));<br />                  astext                  <br />------------------------------------------<br /> POINT(481709.059137956 4350071.34479768)<br />(1 row)<br /><br />gisdb=# <br /><br /></pre>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/286125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2009-07-09 17:57 <a href="http://www.blogjava.net/zhyiwww/archive/2009/07/09/286125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mapserver配置postgis数据源</title><link>http://www.blogjava.net/zhyiwww/archive/2009/02/20/255879.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Fri, 20 Feb 2009 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2009/02/20/255879.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/255879.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2009/02/20/255879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/255879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/255879.html</trackback:ping><description><![CDATA[[1]把shp数据导入到postgres(postgis)<br />[2]road.map文件内容如下<br /><br /># Map file generated by QGIS version 0.7.4<br /># Edit this file to customize for your interface<br /># Not all sections are complete. See comments for details.<br />NAME road <br />STATUS ON<br /><br /># Map image size. Change size as desired<br />SIZE 256 256<br />#<br /># Start of web interface definition. Only the TEMPLATE parameter<br /># must be specified to display a map. See Mapserver documentation<br />#<br />WEB<br />  # HEADER<br />  # TEMPLATE<br />  # FOOTER<br />MINSCALE 1<br />  MAXSCALE 8 <br /># Set IMAGEPATH to the path where mapserver should<br /># write its output<br /> IMAGEPATH 'd:\\tmp\\'<br /># Set IMAGEURL to the url that points to IMAGEPATH<br /> #IMAGEURL '/map_output/'<br />END<br /><br />PROJECTION<br />    "init=epsg:4326"<br />END<br /><br /># Extent based on full extent of QGIS view<br />EXTENT 115.275 39.2204 117.475 40.9462<br /><br />UNITS METERS<br /><br />IMAGECOLOR 255 255 255<br />IMAGETYPE gif<br /># Projection definition<br /># Projections are not currenlty supported. If desired, add your own<br /># projection information based on Mapserver documentation.<br />#<br />LAYER<br />  NAME road <br />  TYPE LINE<br />  STATUS ON<br /><font color="#0000ff"><b><br />  CONNECTIONTYPE POSTGIS<br />  CONNECTION "host=localhost dbname=mapdb  user=postgres password=postgres port=5432"<br />  DATA "the_geom from beijing_polyline using unique gid using srid=4326"</b></font><br /><br />  #DATA  "d:\\wwwroot\\shp\\Rbeijing.shp"<br /><br />  CLASS<br />    NAME "ROAD"<br />    # TEMPLATE<br />    OUTLINECOLOR 112 238 238<br />  END<br />END<br />END # Map File<br /><br />蓝色的部分就是连接postgis数据库的部分，和取数据的部分<br /><br />[3]road.html<br />&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />  &lt;head&gt;<br />    &lt;style type="text/css"&gt;<br />        ##mapdiv {<br />            width: 800px;<br />            height: 475px;<br />            border: 1px solid black;<br />        }<br />    &lt;/style&gt;<br />    &lt;script src="/OpenLayers/OpenLayers.js"&gt;&lt;/script&gt;<br /><br />    &lt;script type="text/javascript"&gt;<br />        //Google has 20 scales<br />        //Resolutions always start big to small, descending order<br />        //numZoomLevels=20 (corresponds to Googles 20 zoom levels)<br />        //map.setCenter(center, 19); (Zoom Level starts at 0 and ends in 19)<br /><br />        window.onload = function() {<br /><br />            map = new OpenLayers.Map('mapdiv');<br /><br />            var serverURL = "/cgi-bin/mapserv";<br /><br />            var layer_obj = new OpenLayers.Layer.WMS(<br />                "road",<br />                serverURL,<br />                {   <br /><font color="#006400"><b>         <font color="#008000">           layers: 'road',<br />            map : 'd:\\wwwroot\\postgis\\road.map',</font></b></font><br />                    format: 'gif'<br />                },<br />                {<br />                    //reproject: false,<br />                    'numZoomLevels': 20,<br />                    gutter: 15,<br />                    buffer: 0<br />                }<br />            );<br />            layer_obj.setIsBaseLayer(true);   <br />            layer_obj.setVisibility(true);   <br />            map.addLayer(layer_obj);<br /><br />            map.addControl(new OpenLayers.Control.PanZoomBar());<br />            map.addControl(new OpenLayers.Control.MousePosition());<br />            map.addControl(new OpenLayers.Control.LayerSwitcher());<br />            map.addControl(new OpenLayers.Control.Scale());<br />            var center = new OpenLayers.LonLat(116.39166, 39.90625);<br />            map.setCenter(center, 8);<br />        }<br />          <br />    &lt;/script&gt;<br />  &lt;/head&gt;<br />  &lt;body&gt;<br />    &lt;div id="mapdiv"&gt;&lt;/div&gt;<br />  &lt;/body&gt;<br />&lt;/html&gt;<br /><br /><br />访问http://localhost:8888/postgis/road.html，可以看到地图结果如下:<br /><br /><img src="http://www.blogjava.net/images/blogjava_net/zhyiwww/mapserver/mapserver_postgis.PNG" alt="mapserver_postgis.PNG" border="0" height="543" width="858" /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/zhyiwww/aggbug/255879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2009-02-20 18:19 <a href="http://www.blogjava.net/zhyiwww/archive/2009/02/20/255879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>