posts - 41,  comments - 90,  trackbacks - 0
 
Openlayers项目开发完成后,需要将系统从开发环境转移到生产环境。

开发环境下,Openlayers框架由上百个独立的javascript程序文件组成,通过lib目录中的Openlayers.js
动态加载,便于各个功能模块的开发调试。

Openlayers是一个非常庞大的Web地图客户端应用框架,提供了很多功能模块,通常在开发过程中不会用到全部模块。
将系统中用到的独立javascript程序库组织成一个Openlayers.js文件,可以减少代码冗余,加快加载速度,
同时也便于对代码进行压缩和重编码,在一定程度上保护软件产品。

Openlayers提供了代码组合和压缩工具,在build目录下,使用Python脚本实现。运行该工具,需要安装Python解释器。
build文件夹中提供了三种预设的配置文件,它们是:
full.cfg    组合全部代码
library.cfg 组合主要代码
lite.cfg    组合最小代码
项目配置文件建议使用library.cfg或lite.cfg为模板编写。
配置文件中定义了四种作用不同的标签:
[first]    最前执行的代码文件
[last]     最后执行的代码文件
[include]  在预设配置中加入的代码文件列表
[exclude]  从预设配置中去除的代码文件列表
修改[include]和[exclude]项,生成项目配置文件。

在命令提示符下,输入python build.py mycfg my.js(如果是windows系统,请将python.exe加入系统Path路径)
生成的my.js就是生产版本的Openlayers库文件,将my.js部署到生产环境,测试各项功能是否运行正常。

build过程对代码文件做了压缩处理,压缩率在40%左右,程序结构没有做任何改动。
如果你想保护自己的代码,建议使用其他工具进行二次处理,这里推荐Google的Jscompiler,Google的很多项目都使用该工具进行代码压缩和优化。

Google Jscompiler的使用方法:
从http://code.google.com/intl/zh-CN/closure/compiler/下载最新版本。
Google Jscompiler采用Java编写,需要安装Java 6.0运行时或开发包,如果没有安装请到Oracle网站下载。
解压下载的zip包,生成compiler-latest目录,其中compiler.jar是主程序,帮助包含在README中。

执行Google Jscompiler请新打开一个命令提示符窗口,输入:
java -jar compiler.jar --help 显示所有可选参数说明。
压缩编码单个javascript程序文件,请使用下面的命令:
java -jar compiler.jar --js=in.js --js_output_file=out.js
压缩合并多个javascript程序文件,请使用下面的命令:
java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js

经过Google Jscompiler处理后的Openlayers库文件可以再减少20-30%的大小,生成的文件经过测试没有任何问题。
Google Jscompiler会自动对代码进行分析,自动筛选出逻辑上不可能到达的代码,给出提示。
Google Jscompiler会对代码逻辑流程重新组合和优化,提高浏览器上的执行效率。
经过Google Jscompiler重新编码后,Web客户端的运行速度有明显提升。

posted @ 2010-08-04 14:44 天狼 阅读(3469) | 评论 (1)编辑 收藏
第三步:加入GeoTools类库
使用Eclipse打开example工程下的pom.xml文件,替换成以下内容并保存:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>org.geotools.demo</groupId>
 <artifactId>example</artifactId>
 <packaging>jar</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>example</name>
 <url>http://maven.apache.org</url>
 <properties>
  <geotools.version>2.6.3</geotools.version>
 </properties>
 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>
  <dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-main</artifactId>
   <version>${geotools.version}</version>
  </dependency>
 </dependencies>
 <repositories>
  <repository>
   <id>maven2-repository.dev.java.net</id>
   <name>Java.net repository</name>
   <url>http://download.java.net/maven/2</url>
  </repository>
  <repository>
   <id>osgeo</id>
   <name>Open Source Geospatial Foundation Repository</name>
   <url>http://download.osgeo.org/webdav/geotools/</url>
  </repository>
 </repositories>
</project>

不要关闭Eclipse,回到“命令提示符”窗口,在工程目录下键入mvn eclipse:eclipse,
例如: F:\project\example>mvn eclipse:eclipse
等待执行完成。

其间Maven会自动下载GeoTools的gt-main类库,请保持网络连接。

切换到Eclipse,使用refresh命令刷新example工程,你可以看到GeoTools已经加入工程中。

打开geotools.demo.example.App类,做如下修改:
 public static void main( String[] args )

        System.out.println( "Hello GeoTools:" + GeoTools.getVersion() );
}

编译执行,如果看到 Hello GeoTools:2.6-3,恭喜你!大功告成!

第四步:加入绘图界面和Shape插件

打开pom.xml文件,在 <dependencies></dependencies>之间加入以下内容:
<dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-shapefile</artifactId>
   <version>${geotools.version}</version>
  </dependency>
  <dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-epsg-hsql</artifactId>
   <version>${geotools.version}</version>
  </dependency>
  <dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-swing</artifactId>
   <version>${geotools.version}</version>
  </dependency>

不要关闭Eclipse,回到“命令提示符”窗口,执行:F:\project\example>mvn eclipse:eclipse
其间Maven会自动下载GeoTools类库,请保持网络连接。

执行完成后,切换到Eclipse,使用refresh命令刷新example工程。
 
运行QuickStart类,如果demo路径中没有找到Quickstart.java,可以自己创建。
源文件在http://svn.osgeo.org/geotools/tags/2.6.3/demo/example/src/main/java/org/geotools/demo/Quickstart.java 直接复制代码,编译运行即可。

中文乱码问题
用QuickStart打开shape文件,如果文件中包含中文属性信息,中文将无法正确显示,这是GeoTools和GeoServer的常见问题。
在这里,不需要更改ShapefileDataStore类的源代码,我们可以直接修改QuickStart类,
    FileDataStore store = FileDataStoreFinder.getDataStore(file);
FeatureSource featureSource = store.getFeatureSource();

更改为
    ShapefileDataStore shpDataStore=new ShapefileDataStore(file.toURL());
    shpDataStore.setStringCharset(Charset.forName("GBK"));
    FeatureSource featureSource = shpDataStore.getFeatureSource();
即可显示汉字。

posted @ 2010-05-18 16:12 天狼 阅读(3382) | 评论 (3)编辑 收藏
Geotools官方网站上有一个很好Quickstart教程 http://geotools.org/quickstart.html
通过学习该教程,可以快速生成开发环境,我们选择Eclipse作为集成开发工具。

第一步:安装和配置Java和Maven
这部分属于常识性内容,Quickstart没有详细说明。
下载Java SDK 1.5或1.6,运行安装程序自动安装。手工设置JAVA_HOME环境变量,指向Java SDK安装目录。
下载Maven,当前版本是2.2.1(必须使用2.1以上版本),解压到硬盘指定目录。将Maven所在目录手工添加到PATH环境变量中。

检查JDK和Maven是否安装,打开“命令提示符”窗口,键入mvn -version,
例如:F:\project\example>mvn -version
如果返回以下信息,说明JDK和Maven正确安装。
Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
Java version: 1.6.0_03
Java home: C:\Program Files\Java\jdk1.6.0_03\jre
Default locale: zh_CN, platform encoding: GBK OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
如果返回错误信息,请检查环境变量是否设置正确。

第二步:设置工程文件目录
回到“命令提示符”窗口,转到工程起始目录下,键入mvn archetype:generate,
例如 F:\project>mvn archetype:generate
等待执行完毕。在此过程中Maven会创建工程文件和目录,并自动通过互联网下载需要的库文件,请保持网络连接。

运行到快要结束时,需要填入几个参数:
1、输入文档类型:选择默认的快速启动文档类型 15。注:Maven 2.2.1版本的默认值不是15,可以使用新默认值。
2、填入以下值:
groupId: org.geotools.demo
artifactId: example
version: 1.0-SNAPSHOT
package: org.geotools.demo.example
回到“命令提示符”窗口,按下面操作:
F:\project>cd example
F:\project\example>mvn eclipse:eclipse
等待执行完成。

启动Eclipse,打开Windows>Preferences菜单,找到Java>Build Path>Classpath Variables配置页面,添加一个新类路径,键入名称M2_REPO,加入类文件路径。
对于Windows XP在C:\Documents and Settings\<当前用户名>\.m2\repository,对于Windows Vista在: C:\Users\<当前用户名>\.m2\repository,
对于Linux和Mac在: ~/.m2/repository

导入刚才创建的example工程,选择File>Import菜单,选“Choose Existing Projects into Workspace”, 单击Next按钮,选择工程路径F:\project\example,完成。
posted @ 2010-05-18 16:00 天狼 阅读(5051) | 评论 (4)编辑 收藏
Google Maps基站定位
(转载至http://www.cnblogs.com/psunny/archive/2009/10/22/1587779.html)

如果你在你的手机装过Google Mobile Maps,你就可以发现只要你的手机能连接GPRS,即使没有GPS功能,也能定位到你手机所在的位置, 只是精度不够准确。在探讨这个原理之前,我们需要了解一些移动知识,了解什么是MNC/LAC/Cell ID。
  • Mobile Network Code(MNC)
    移动网号码,中国联通CDMA系统的MNC为03,中国移动的为00。
  • Mobile Country Code(MCC)
    移动用户所属国家代号:460
  • Location Area Code(LAC)
    地区区域码,用来划分区域,一般一个小地方就一个LAC,大地方就
  • Cell Tower ID(Cell ID)
    CellID代表一个移动基站,如果你有基站数据,查CellID你就可以知道这个基站在哪里,移动公司或者警察通过这个知道你是在哪个基站范围打的移动电话。

这些信息有什么用呢? 通过这些信息可以知道你的手机是从哪个国家,区域和哪个基站接入移动网络的。所以有些防盗手机丢失后,会发一些类 似"MCC:460;MNC:01;LAC:7198:CELLID:24989"内容的短信到你指定号码就是这个用途,通过这些信息可以从移动查到你的 被盗手机在哪里出现过。不过知道了也没用,中国人口这么密集,就是在你身边你也不知道谁是小偷:) 

  这些信息从哪里来呢,一般的手机系统都提供相应的API来获取这些信息(Tower Info),比如Window SmartPhone 或Mobile就是通过RIL.dll里的API来取得,每个手机操作系统不一样,相关的信息可以查相关资料。

得到了这些信息,如果没有基站信息表,得到了这些信息也不知道在哪,因为只有移动运营商有相关的信息,除非你是运营商或者警察才能得到这些信息。是 不是我们就查不到相应的数据呢,当然不是,强大的Google就有,这里就要提到Google Mobile Maps API,里面囊括了比较全的基站信息,中国的也有,就是偏远地区的有没有就不知道了。Google Mobile Maps本身就是使用的这些信息,感兴趣可以试一试,没有GPS模块也能定位到你手机位置,但精度不大,取决于基站的位置离你多远。

  同样我们自己也可以开发相应的手机应用来定位,只要调用Google现成的API(Secret API)"http://www.google.com/glm/mmap“.

  • 首先读取你自己手机的CellID和LAC。
  • 通过Http连接发送Post请求到http://www.google.com/glm/mmap
  • 传入CellID和LAC参数,从API返回基站的经纬度(Latitude/Longitude)。
  • 另外有个可以参考的例子(windows mobile)http://www.codeproject.com/KB/mobile/DeepCast.aspx

       下面是通过j2me获取手机imei号码和cellid(基站号)的例子

    package jizhan;
    import javax.microedition.lcdui.Command;
    import javax.microedition.lcdui.CommandListener;
    import javax.microedition.lcdui.Display;
    import javax.microedition.lcdui.Displayable;
    import javax.microedition.lcdui.Form;
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.midlet.MIDletStateChangeException;

    public class GetIMEIAndCellId extends MIDlet implements CommandListener {
        
    private Command exitCommand = new Command("exit", Command.EXIT, 1);

         Form form 
    = new Form("imei and cellid");
         Display display 
    = null;

        
    public GetIMEIAndCellId() {
             display 
    = Display.getDisplay(this);

         }


        
    protected void destroyApp(boolean arg0) {

         }


        
    protected void pauseApp() {

         }


        
    protected void startApp() throws MIDletStateChangeException {
            
    //获取系统信息
             String info = System.getProperty("microedition.platform");
            
    //获取到imei号码
             String imei = "";
            
    //cellid
             String cellid = "";
            
    //lac
             String lac = "";
            
    // #if polish.vendor==Sony-Ericsson
             imei = System.getProperty("com.sonyericsson.imei");
            
    //参考 http://forums.sun.com/thread.jspa?threadID=5278668
            
    //https://developer.sonyericsson.com/message/110949
             cellid = System.getProperty("com.sonyericsson.net.cellid");
            
    //获取索爱机子的
             lac = System.getProperty("com.sonyericsson.net.lac");
            
    // #else if polish.vendor==Nokia
             imei = System.getProperty("phone.imei");
            
    if (imei == null || "".equals(imei)) {
                 imei 
    = System.getProperty("com.nokia.IMEI");
             }

            
    if (imei == null || "".equals(imei)) {
                 imei 
    = System.getProperty("com.nokia.mid.imei");
             }

            
    //获取到cellid
            
    //参考http://wiki.forum.nokia.com/index.php/CS000947_-_Getting_Cell_ID_in_Java_ME
            
    // #if polish.group==Series60
             cellid = System.getProperty("com.nokia.mid.cellid");
            
    // #else if polish.group==Series40
             cellid = System.getProperty("Cell-ID");
            
    // #endif
            
    // #else if polish.vendor==Siemens
             imei = System.getProperty("com.siemens.imei");
            
    // #else if polish.vendor==Motorola
             imei = System.getProperty("com.motorola.IMEI");
            
    //cellid 参考 http://web.mit.edu/21w.780/www/spring2007/guide/
             cellid = System.getProperty("CellID");
            
    // #else if polish.vendor==Samsung
             imei = System.getProperty("com.samsung.imei");
            
    // #endif

            
    if (imei == null || "".equals(imei)) {
                 imei 
    = System.getProperty("IMEI");
             }


            
    //展示出来
             form.append("platforminfo:" + info);
             form.append(
    "imei:" + imei);
             form.append(
    "cellid:" + cellid);
             form.setCommandListener(
    this);
             form.addCommand(exitCommand);
             display.setCurrent(form);
         }


        
    public void commandAction(Command cmd, Displayable item) {
            
    if (cmd == exitCommand) {
                 destroyApp(
    false);
                 notifyDestroyed();
             }

         }


    }

      需要注意的是,必须是受信任的Midlet才可以取到这些数据。也就是说Midlet必须经过签名上述代码才可以工作,否则获取到的是NULL。。
    下面是从别的地方看来的,没做过测试,供参考。
    a) Nokia = System.getProperty("com.nokia.mid.imei");
    System.getProperty("com.nokia.IMEI");
    System.getProperty("phone.imei");
    b) Samsung
    System.getProperty("com.samsung.imei");
    c) Sony-Ericsson
    System.getProperty("com.sonyericsson.imei");

    IMSI: IMSI全称是International Mobile Subscriber Identification Number,移动用户身份码。当手机开机后,在接入网络的过程中有一个注册登记的过程,系统通过控制信道将经加密算法后的参数组传送给客户,手机中的 SIM卡收到参数后,与SIM卡存储的客户鉴权参数经同样算法后对比,结果相同就允许接入,否则为非法客户,网络拒绝为此客户服务。IMSI唯一的标志了 一个SIM卡。
    IMEI: IMEI即International Mobile Equipment Identity(国际移动设备身份)的简称,也被称为串号,它唯一标志了一台移动设备,比如手机。 IMEI码一般由15位数字组成,绝大多数的GSM手机只要按下“*#06#”,IMEI码就会显示出来。其格式如下: TAC即Type Approval Code,为设备型号核准号码。FAC即Final Assembly Code,为最后装配号码。 SNR即Serial Number,为出厂序号。 SP即Spare Number,为备用号码。  

      有时候,我们在应用中需要获取IMSI或者IMEI号用于将应用程序和手机或SIM卡绑在一起。获取的方式在各不同厂商的各款手机上不尽相同,在motorola RAZR E6   上采用System.getProperty()获取。相应程序代码是:

                 String imei= System.getProperty("IMEI"); //for E6
                 if ( null == imei )
                     imei = System.getProperty("phone.IMEI");
                
                 String imsi = System.getProperty("IMSI"); //for E6
                 if ( null == imsi )
                     imei = System.getProperty("phone.IMSI");
                
                 g.drawString("IMEI: "+imei, 10, 50, Graphics.LEFT | Graphics.TOP);

                 g.drawString("IMSI: "+imsi, 10, 70, Graphics.LEFT | Graphics.TOP);

    参考地址:
    http://blog.csdn.net/phiger/archive/2009/07/22/4371922.aspx
    http://hi.baidu.com/lfcomputer/blog/item/0520e0d37a410a3c970a16c1.html
    http://wiki.forum.nokia.com/index.php/CS000947_-_Getting_Cell_ID_in_Java_ME
    posted @ 2009-12-03 16:30 天狼 阅读(2970) | 评论 (4)编辑 收藏
    不需要安装任何插件,使用openlayers 2.8可在Web页面上实现高级编辑功能。

    作为一个功能强大的WebGIS客户端,openlayers提供了添加、删除点、线、面的功能。
    对于节点捕获、分割、旋转等高级编辑功能,openlayers也提供了相应的例子。

    节点捕获的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/snapping.html
    分割的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/split-feature.html
    节点捕获和分割的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/snap-split.html
    旋转、缩放的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/modify-feature.html
    控制缩放的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/resize-features.html
    动画旋转的例子 http://dev.openlayers.org/releases/OpenLayers-2.8/examples/rotate-features.html



    posted @ 2009-11-20 15:14 天狼 阅读(2189) | 评论 (0)编辑 收藏

    给图层添加高度数据,需要根据实体几何类型分别处理。对于面,例如行政区界或建筑物,需要创建一个高度模板文件。
    对于线(点),例如架空电缆,高程将直接从图形数据中读取。
    GeoServer 1.7.1及以上版本支持输出三维面的KML(KMZ),1.7.6及以上版本支持输出三维线(点)的KML(KMZ)。

    发布三维面图层:

    用Geoserver发布三维面的过程非常简单,测试中我们使用Geoserver自带的示例图层topp:states。

    1、用记事本新建一个文本文件(高度模板文件),命名为height.ftl
    2、在文件中加入一行脚本,格式为${ATTRIBUTE.value},ATTRIBUTE是属性字段的名称。
    例如states图层有属性字段PERSONS,记录每个州的人口,输入${PERSONS.value?number/100},把高度和人口数建立关系。
    3、将height.ftl复制到Geoserver的/data/featureTypes/states/目录下
    4、进入Geoserver地图预览页面,找到topp:states,选择KML,打开Google Earth浏览效果。

    效果图1



    官方原文见:http://geoserver.org/display/GEOSDOC/04-Height+Templates

    作为练习,可以根据官方文档
    http://demo.opengeo.org:8080/display/GEOSDOC/05-Super+Overlays+and+Extrudes+with+Building+Data,
    发布纽约曼哈顿的建筑物,浏览三维城市效果。

    效果图2



    发布三维线图层:

    三维线不使用height.ftl文件,因为一条线有两个以上的节点,每个节点可能有不同的高度值,高程直接存放在图形数据(Geometry)的Z坐标中。
    Oracle Spatial、PostgreSQL(PostGIS)等数据库都支持存储三维坐标。

    Geoserver可以直接发布三维线,测试中使用Oracle Spatial(10g)和PostgreSQL(8.3)作为数据源。
    1、在Oracle Spatial(10g)或PostgreSQL(8.3)中存入包含Z坐标的三维线数据,作为测试,可用直接SQL语句插入数据。
    2、在Geoserver中发布该图层。
    3、进入Geoserver地图预览页面,找到刚才发布的图层,选择KML,打开Google Earth浏览效果。

    需要注意的是,默认KML(KMZ)在Google Earth中的实际效果是三维面。
    经过查阅KML文档,要实现三维线,需要在KML链接后加上可选参数format_options=extrude:0,例如将
    http://192.98.151.200:8080/geoserver/wms/kml?layers=topp:TESTL
    改为
    http://192.98.151.200:8080/geoserver/wms/kml?layers=topp:TESTL&format_options=extrude:0

    效果图3


    Google KML Version 2.2已经获得OGC批准,成为国际标准的数据存储格式。ESRI、INTERGRAPH、MAPINFO在其最新版本软件中提供KML格式输出支持。
    Google定义的KML不仅可以包含三维高程数据,还能加入四维时间数据。

    本文只涉及三维数据的发布和展示,相关技术文档请参考Google KML和Geoserver KML页面。
    Google KML页面:http://code.google.com/apis/kml/documentation/
    Geoserver KML页面:http://geoserver.org/display/GEOSDOC/KML+KMZ+Output http://geoserver.org/display/GEOSDOC/Google+Earth+Features
    本文涉及的软件环境为:Geoserver 1.7.7、Geoserver 2.0、Google Earth 5.1、Oracle 10.2.0.3、PostgreSQL 8.3.7

    posted @ 2009-10-27 10:40 天狼 阅读(6703) | 评论 (2)编辑 收藏
    2009年10月23日 Geoserver 2.0 正式发布
    posted @ 2009-10-26 15:55 天狼 阅读(366) | 评论 (0)编辑 收藏

    一.安装postgis

      (1)首先到postgresql的官方网站(www.postgresql.org)上下载最新版的开源数据库postgresql,我当前下载的最新安装包是postgresql-8.3.6-1-windows.exe

      (2)运行该exe,按照向导安装之,在安装过程中最好关闭防火墙,以及监控;另外最好将安装目录设置为NTFS分区的盘上.

      (3)安装完成后提示你是否在退出时配置application stack builder,这里购选上它,然后点finish

      (4)进入application stack builder向导后,选择postgresql 8.3 on port 5432,点next

      (5)在application list中沟选中你要安装的application,这里必须沟选postgis-pg83-setup-1.3.5-1.exe

      (6)下一步,选择下载服务器,下载完成后开始安装相应的application

      (7)在安装时要注意,有两处都要设置密码,不要设置密码为空.

      (8)这样根据向导就可以成功安装postgis了

      安装postgis过程中可能会出现"Error opening file for writing:
    c:\program files\PostgreSQL\8.3\bin\libiconv-2.dll"的提示,这里我们可以忽略之

    二.向postgis导入shapefile数据

      (1)安装后运行pgadmin III,右击postgresql 8.3(localhost)服务器,连接之,这里的密码是你安装时设置的密码,务必牢记

      (2)连接后,我们发现postgis安装后自动给我们生成了一个数据template_postgis,我们将要导入的数据就需要放到这个数据库中.

      (3)运行命名提示符cmd.exe,将其转向C:\Program Files\PostgreSQL\8.3\bin(或者将cmd.exe复制到该目录下)如下:

        C:\Program Files\PostgreSQL\8.3\bin>

      (4)首先将shp生成对应的sql脚本,键入以下字符

         C:\Program Files\PostgreSQL\8.3\bin>shp2pgsql -W "GBK" D:\CampusGISProject\new_p
    ku_vector\viwpt.shp viwpt > D:\CampusGISProject\new_pku_vector\viwpt.sql

         这里的-W "GBK"代表字符编码的转换,D:\CampusGISProject\new_pku_vector\viwpt.shp则是要生成sql脚本的 shp文件.viwpt是创建数据表的表名,>不能少,D:\CampusGISProject\new_pku_vector \viwpt.sql则是要生成SQL文件的绝对目录

         生成成功后命令提示符会显示如下:

         Shapefile type: Point
         Postgis type: POINT[2]

      (5)然后我们执行sql语句,执行该SQL语句文件,导入数据到数据库template_postgis中

         C:\Program Files\PostgreSQL\8.3\bin>psql -d template_postgis -f D:\CampusGISProj
    ect\new_pku_vector\viwpt.sql postgres

         其中 template_postgis是数据库名,postgres是该数据库的用户

         执行成功后,刷新该数据库,就可以看到新生成的数据表viwpt

       这样viwpt.shp数据就成功导入到了postgis中了
    posted @ 2009-10-20 15:00 天狼 阅读(811) | 评论 (0)编辑 收藏
    从MapGuide官方网站(https://mapguide.osgeo.org)下载MapGuide Open Source Windows安装包
    MgServerSetup-2.0.2.3011.exe
    MgWebServerExtensionsSetup-2.0.2.3011.exe
    安装包中已经包含了apache和tomcat,但是没有包含Java SDK。需要单独安装Java SDK 5.0以上版本,并设置JAVA_HOME和JRE_HOME环境变量。

    安装MapGuide Server和MapGuide Web Server Extensions,安装时选择Java环境,另外两种环境是PHP和DOTNET。
    下载java环境示例文件javaviewersample.zip,解压到 MapGuideOpenSource安装目录\WebServerExtensions\www 目录下,
    在解压后的文件夹 javaviewersample 找到文件 readme.txt,按其中的说明进行配置,注意修改路径。
    进入 MapGuideOpenSource安装目录\WebServerExtensions\Tomcat\bin 目录,执行 startup.bat,启动Tomcat。
    如果Tomcat无法启动,检查Java环境变量是否正确。

    下载示例数据包 Sheboygan.mgp,复制到 MapGuideOpenSource安装目录\Server\Packages 目录下。
    打开站点管理程序,地址为 http://ip:8008/mapguide/mapadmin/login.php,登录用户名Administrator,密码admin,注意大小写。
    如果输入了正确的用户名和密码,仍然无法登录,检查MapGuide Server服务是否运行。

    选择管理页面左侧的导航条,选择ManagePackages,然后在右侧列表选中Sheboygan.Mgp,点击Load Package标签,等待Package加载完成。
    注意:如果IP地址为127.0.0.1或localhost,可能无法执行Load Package命令。

    在浏览器中输入 http://ip:8008/mapguide/javaviewersample/ajaxtiledviewersample.jsp, 查看运行效果。


    posted @ 2009-08-31 15:19 天狼 阅读(1620) | 评论 (0)编辑 收藏

    将 Oracle Spatial 与 Google Earth 集成

    此篇文章将向您展示如何使用Oracle Locator/Oracle Spatial、GeoServer 和Google Earth 创建具有定位功能的强大的无缝商务智能系统。最后,我希望您在阅读完本练习之后 ...
    官方链接:http://www.oracle.com/technology/global/cn/pub/articles/lokitz-spatial-geoserver.html


    posted @ 2009-08-20 21:19 天狼 阅读(461) | 评论 (0)编辑 收藏
    仅列出标题
    共4页: 上一页 1 2 3 4 下一页