📄 shapefilereader.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)file://T:\网友原创\sharecode\Java2\ShapeReader.htm -->
<!-- saved from url=(0063)file://T:\网友原创\sharecode\java\ShapefileReader.files\bbs.htm --><!-- saved from url=(0148)http://china.gischina.com/cgi-bin/bbs30/bbs.cgi?job=click_1&userno=20010516083422&do=board&key_input=gisforum&bbstitle=地理信息技术论坛-地理信息系统 --><HTML><HEAD><TITLE>地理信息技术论坛-地理信息系统</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>A {
TEXT-DECORATION: none
}
A:hover {
COLOR: #3a5034; TEXT-DECORATION: underline
}
TD {
FONT-SIZE: 9pt
}
</STYLE>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<STYLE fprolloverstyle>A:hover {
COLOR: #ff0000
}
</STYLE>
</HEAD>
<BODY leftMargin=0 link=#006699 text=#006699 topMargin=0 vLink=#006699>
<DIV align=center>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 height=20 width=629>
<TBODY>
<TR>
<TD height=20 width=625>
<CENTER>
<H2><FONT
face=黑体>地理信息技术论坛-GIS</FONT></H2></CENTER></TD></TR></CENTER></TBODY></TABLE></DIV>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColorDark=#79bcff borderColorLight=#79bcff cellPadding=0
cellSpacing=0 height=20 width=629>
<TBODY>
<TR>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom width=104> </TD>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom width=104> </TD>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom width=104> </TD>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom width=105> </TD>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom width=105> </TD>
<TD align=middle bgColor=#dfefff height=20 vAlign=bottom
width=105> </TD></TR></TBODY></TABLE></CENTER></DIV>
<DIV align=center>
<CENTER>
<TABLE border=0 cellSpacing=1 height=30 width=629>
<TBODY>
<TR>
<TD align=middle colSpan=6 height=30 width=620>
<P
align=center><STRONG><!--list-->ShapefileReader.java(源码故乡)</STRONG></P></TD></TR>
<TR>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=54>发表人:</TD></CENTER>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=152>
<P align=left><A
href="http://china.gischina.com/cgi-bin/bbs30/per.cgi?username=gml">gml</A></P></TD>
<CENTER>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=52>E-mail:</TD></CENTER>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=155>
<P align=left><A href="mailto:gmliao@sina.com">gmliao@sina.com</A></P></TD>
<CENTER>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=53>主页:</TD></CENTER>
<TD align=middle height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=154>
<P align=left><A href="http:///" target=_blank>http://</A></P></TD></TR>
<CENTER>
<TR>
<TD height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=54>
<P align=center>类型:</P></TD></CENTER>
<TD colSpan=5 height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=570>
<P align=left><IMG src="ShapeFileReader.files/1.gif"> 随便说说 </P></TD></TR>
<CENTER>
<TR>
<TD height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=54>
<P align=center>标题:</P></TD></CENTER>
<TD colSpan=5 height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=570>
<P align=left>ShapefileReader.java(源码故乡)</P></TD></TR>
<CENTER>
<TR>
<TD height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=54>
<P align=center>内容:</P></TD></CENTER>
<TD colSpan=5 height=20
style="BORDER-BOTTOM: #79bcff 1px solid; BORDER-LEFT: #79bcff 1px solid; BORDER-RIGHT: #79bcff 1px solid; BORDER-TOP: #79bcff 1px solid"
width=570>
<P align=left><BR>import java.awt.Color;<BR>import java.io.*;<BR>import
java.net.URL;<BR>import java.net.URLConnection;<BR>import
java.util.zip.*;<BR>import
uk.ac.leeds.ccg.dbffile.DbfFileException;<BR>import
uk.ac.leeds.ccg.dbffile.DbfNet;<BR>import
uk.ac.leeds.ccg.shapefile.*;<BR><BR>public class
ShapefileReader<BR>{<BR>public Shapefile sf;<BR>public DbfNet
dbf;<BR>private int idCol;<BR>private String name;<BR><BR>public
ShapefileReader(String baseFilename)<BR>{<BR>super();<BR>sf = null;<BR>dbf
= null;<BR>idCol = 3;<BR>name = "none";<BR>name =
baseFilename;<BR>try<BR>{<BR>sf = new Shapefile(baseFilename +
".shp");<BR>}<BR>catch(Exception
e)<BR>{<BR>System.out.println(e);<BR>}<BR>}<BR><BR>public
ShapefileReader(URL base, int idCol)<BR>{<BR>super();<BR>sf = null;<BR>dbf
= null;<BR>this.idCol = 3;<BR>name = "none";<BR>this.idCol =
idCol;<BR>name = base.getFile();<BR>String sub =
"";<BR>if(name.indexOf(63) >= 0)<BR>sub =
name.substring(name.indexOf(63),
name.lastIndexOf(47));<BR>System.out.println("Sub " + sub);<BR>boolean
shpZip = false;<BR>boolean dbfZip =
false;<BR>try<BR>{<BR>System.out.println("SFR: Looking for .zip version of
" + name);<BR>String ext = ".zip";<BR>String noExt =
base.getFile();<BR>System.out.println("No Ext " +
noExt);<BR>if(noExt.toLowerCase().endsWith(".shp")
noExt.toLowerCase().endsWith(".zip"))<BR>noExt = name.substring(0,
name.length() - 4);<BR>System.out.println("No Ext " + noExt);<BR>URL
zipURL = new URL(base.getProtocol(), base.getHost(), base.getPort(), noExt
+ ext);<BR>System.out.println("zip url = " + zipURL);<BR>URLConnection uc
=
zipURL.openConnection();<BR>uc.setUseCaches(false);<BR>uc.setDefaultUseCaches(false);<BR>System.out.println("Opening
zis");<BR>int size = uc.getContentLength();<BR>if(size != -1)<BR>{<BR>byte
buf1[] = new byte[size];<BR>byte got[] = new byte[size /
10];<BR>InputStream is = uc.getInputStream();<BR>int grab = 0;<BR>for(int
total = 0; (grab = is.read(got)) > -1; total +=
grab)<BR>System.arraycopy(got, 0, buf1, total, grab);<BR><BR>got =
null;<BR>ByteArrayInputStream zipfile = new
ByteArrayInputStream(buf1);<BR>ZipInputStream zis = new
ZipInputStream(zipfile);<BR>System.out.println("Looking for
entries");<BR>ZipEntry ze;<BR>while((ze = zis.getNextEntry()) != null
&& (!shpZip !dbfZip)) <BR>{<BR>System.out.println("Found
entry");<BR>System.out.println(ze);<BR>System.out.println("Entry: " +
ze.getName());<BR>System.out.println("Getting
entry");<BR>if(ze.getName().toLowerCase().endsWith(".shp"))<BR>{<BR>name =
ze.getName();<BR>System.out.println("Found .shp in zip file");<BR>size =
(int)ze.getSize();<BR>byte buf[] = new byte[size];<BR>byte in[] = new
byte[size];<BR>int n = 0;<BR>for(int index = 0; (n = zis.read(in)) >
-1; index += n)<BR>System.arraycopy(in, 0, buf, index,
n);<BR><BR>zis.closeEntry();<BR>ByteArrayInputStream bais = new
ByteArrayInputStream(buf);<BR>sf = new Shapefile(bais);<BR>shpZip =
true;<BR>}<BR>else<BR>if(ze.getName().toLowerCase().endsWith(".dbf"))<BR>{<BR>System.out.println("Found
.dbf in zip file");<BR>size = (int)ze.getSize();<BR>byte buf[] = new
byte[size];<BR>byte in[] = new byte[size];<BR>int n;<BR>for(int index = 0;
(n = zis.read(in)) > -1; index += n)<BR>System.arraycopy(in, 0, buf,
index, n);<BR><BR>zis.closeEntry();<BR>ByteArrayInputStream bais = new
ByteArrayInputStream(buf);<BR>dbf = new DbfNet(bais);<BR>dbfZip =
true;<BR>}<BR>}<BR><BR>if(shpZip &&
dbfZip)<BR>{<BR>System.out.println("Zip file version used " +
name);<BR>return;<BR>}<BR>}<BR>}<BR>catch(ZipException
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -