<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geoinformatics &#187; Jquery</title>
	<atom:link href="http://www.geoinformatics.cn/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geoinformatics.cn</link>
	<description>Arts and Sciences move me on ...</description>
	<lastBuildDate>Fri, 13 Jan 2012 10:29:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>写了一份pyQuery教程</title>
		<link>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/</link>
		<comments>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 23:48:32 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1451</guid>
		<description><![CDATA[前几天在用pyquery，绝对这个库做的非常好，索性就将原来的英文教程进行翻译。如果喜欢jquery然后用想在python中使用jquery的语法，不妨用用pyquery，不会让大家失望的。 请访问如下地址 http://geoinformatics.cn/lab/pyquery/]]></description>
			<content:encoded><![CDATA[<p>前几天在用pyquery，绝对这个库做的非常好，索性就将原来的英文教程进行翻译。如果喜欢jquery然后用想在python中使用jquery的语法，不妨用用pyquery，不会让大家失望的。</p>
<p>请访问如下地址 <a href="http://geoinformatics.cn/lab/pyquery/">http://geoinformatics.cn/lab/pyquery/</a></p>
<p><img class="alignnone size-full wp-image-1452" title="pyquery" src="/wp-content/uploads//20091101_pyquery.jpg" alt="pyquery" width="500" height="479" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/11/%e5%86%99%e4%ba%86%e4%b8%80%e4%bb%bdpyquery%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>利用python解析基于GraphML的的社会网络并用GIS展示</title>
		<link>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/</link>
		<comments>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 08:16:49 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[ArcGIS]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Social Network]]></category>
		<category><![CDATA[uDig]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1438</guid>
		<description><![CDATA[好长一个标题&#8230; &#8230;但是确实是用python来连接SNA（Social Network Analysis）和GIS(Geographic Information System)。脑子里反复想着自己特长是啥，画地图？那大概是5岁以前的事情，后来几个伙计打趣说我谈恋爱很在行，Seriously，这方面我还确实拿不出手。一直不离不弃的，也许就是自己编程的能耐，当学了“君子不器”后，越来越发觉似乎连编程都不能当会事了，但是话说回来，至少这算是个爱好吧。 需求大抵是这样的，客户用igraph进行社会网络分析，然后生成了xml格式的数据文件，但并没有很好的网络展示平台，manager就来找我，希望通过我们研发的WebGIS系统展示。在我们的WebGIS系统中，矢量数据都是保存在PostgreSQL数据库里，一般来说，都是通过shapefile 生成sql files，然后导入数据库。由于没有shapefile，但是分析graphicML文件发现结构还是很简单的，而且对于社会网络的两个node之间的关系（relationship），从几何的角度讲，两个nodes构成的关系就是一条两点直线（edge）。基于此，我希望通过python对graphML进行分析，然后直接生成sql file，导入到postgreSQL里面，此后就能用uDig就能直接转换成为shapefile，我不清楚新版的ArcGIS 9.3有没有相似的功能，好久不用Arctoolbox了。 原始数据片段： &#60; ?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62; &#60;graphml xmlns=&#34;http://graphml.graphdrawing.org/xmlns&#34; xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34; xsi:schemaLocation=&#34;http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd&#34;&#62; &#60;!-- Created by igraph --&#62; &#60;key id=&#34;filestub&#34; for=&#34;graph&#34; attr.name=&#34;filestub&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;id&#34; for=&#34;node&#34; attr.name=&#34;id&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;xcoord&#34; for=&#34;node&#34; attr.name=&#34;xcoord&#34; attr.type=&#34;double&#34;/&#62; &#60;key id=&#34;ycoord&#34; for=&#34;node&#34; attr.name=&#34;ycoord&#34; attr.type=&#34;double&#34;/&#62; &#60;key id=&#34;h_loc&#34; for=&#34;edge&#34; attr.name=&#34;h_loc&#34; attr.type=&#34;string&#34;/&#62; &#60;key id=&#34;h_zip&#34; for=&#34;edge&#34; attr.name=&#34;h_zip&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>好长一个标题&#8230; &#8230;但是确实是用python来连接SNA（Social Network Analysis）和GIS(Geographic Information System)。脑子里反复想着自己特长是啥，画地图？那大概是5岁以前的事情，后来几个伙计打趣说我谈恋爱很在行，Seriously，这方面我还确实拿不出手。一直不离不弃的，也许就是自己编程的能耐，当学了“君子不器”后，越来越发觉似乎连编程都不能当会事了，但是话说回来，至少这算是个爱好吧。</p>
<p>需求大抵是这样的，客户用igraph进行社会网络分析，然后生成了xml格式的数据文件，但并没有很好的网络展示平台，manager就来找我，希望通过我们研发的WebGIS系统展示。在我们的WebGIS系统中，矢量数据都是保存在PostgreSQL数据库里，一般来说，都是通过shapefile 生成sql files，然后导入数据库。由于没有shapefile，但是分析graphicML文件发现结构还是很简单的，而且对于社会网络的两个node之间的关系（relationship），从几何的角度讲，两个nodes构成的关系就是一条两点直线（edge）。基于此，我希望通过python对graphML进行分析，然后直接生成sql file，导入到postgreSQL里面，此后就能用uDig就能直接转换成为shapefile，我不清楚新版的ArcGIS 9.3有没有相似的功能，好久不用Arctoolbox了。</p>
<p><span id="more-1438"></span><img class="alignnone size-full wp-image-1440" title="sna" src="/wp-content/uploads//200091031_sna1.jpg" alt="sna" width="500" height="466" /></p>
<p>原始数据片段：</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;graphml</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://graphml.graphdrawing.org/xmlns&quot;</span></span>
<span style="color: #009900;">         <span style="color: #000066;">xmlns:xsi</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span></span>
<span style="color: #009900;">         <span style="color: #000066;">xsi:schemaLocation</span>=<span style="color: #ff0000;">&quot;http://graphml.graphdrawing.org/xmlns</span>
<span style="color: #009900;">         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #808080; font-style: italic;">&lt;!-- Created by igraph --&gt;</span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;graph&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;id&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;id&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;double&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;node&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;double&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;patent&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;patent&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;key</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">&quot;edge&quot;</span> <span style="color: #000066;">attr.name</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span> <span style="color: #000066;">attr.type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;graph</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;G&quot;</span> <span style="color: #000066;">edgedefault</span>=<span style="color: #ff0000;">&quot;undirected&quot;</span> <span style="color: #000066;">parse.nodes</span>=<span style="color: #ff0000;">&quot;1022&quot;</span> <span style="color: #000066;">parse.edges</span>=<span style="color: #ff0000;">&quot;9399&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;filestub&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>/tmp/VDC/DSB/iGraph.322801<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;node</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;n0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;id&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>20190035<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>394.439<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>245.759<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/node<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;node</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;n1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;id&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>21810055<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;xcoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>452.308<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;ycoord&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>-49.6771<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/node<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;edge</span> <span style="color: #000066;">source</span>=<span style="color: #ff0000;">&quot;n1020&quot;</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;n1021&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_loc&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>MA<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_zip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>01532<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;h_city&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>NORTHBORO<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_loc&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>MA<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_zip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>01601<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;t_city&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>WORCESTER<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;appyear&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>2004<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;patent&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>7459547<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;data</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;pat_type&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>U<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/data<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/edge<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/graph<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/graphml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>通过python对XML进行解析，我还是向大家推荐pyQuery，大概是喜欢Jquery的缘故吧，我觉得pyQuery用起来很方便，很顺手。大家可以到pyquery.org查找帮助和教程。需要注意的是，pyQuery对于命名空间的解析似乎不是很好，我记得以前我写过一篇帖子叫做<a href="/?p=1060">两个GIS编程技巧</a>，里面提及了用@nodeName=namespace:elementName的方式来对异域命名空间的元素进行解析。但是pyQuery似乎不能进行该操作，所以我在进行解释之前，将根节点的所有命名空间都删除了。<br />
解析本省是一件很简单的事情，随后写入到另一个文件中，其次对每一个node和edge进行分析，按照SQL语法，生成INSERT INTO的语句。</p>
<p>python 代码片段</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> pyquery <span style="color: #ff7700;font-weight:bold;">import</span> PyQuery <span style="color: #ff7700;font-weight:bold;">as</span> pq
<span style="color: #ff7700;font-weight:bold;">from</span> lxml <span style="color: #ff7700;font-weight:bold;">import</span> etree
d = pq<span style="color: black;">&#40;</span>filename=<span style="color: #483d8b;">&quot;data/rna.xml&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #008000;">file</span> = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'data/output.sql'</span>, <span style="color: #483d8b;">'w+'</span><span style="color: black;">&#41;</span>
content = <span style="color: #483d8b;">''</span>
nodes =  d<span style="color: black;">&#40;</span><span style="color: #483d8b;">'node'</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> item <span style="color: #ff7700;font-weight:bold;">in</span> nodes:
  content += <span style="color: #483d8b;">&quot;INSERT INTO sn_node ( the_geom, nid) VALUES ( GeomFromText('POINT(&quot;</span> + item<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>.<span style="color: black;">text</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">&quot; &quot;</span> + item<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>.<span style="color: black;">text</span>.<span style="color: #0000cd;">__str__</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> +<span style="color: #483d8b;">&quot;)', 900913), '&quot;</span> + item.<span style="color: black;">attrib</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'id'</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">&quot;');<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
<span style="color: #008000;">file</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span>content<span style="color: black;">&#41;</span>
<span style="color: #008000;">file</span>.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>从而生成output.sql,如下片段，</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(394.439 245.759)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n0'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(452.308 -49.6771)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n1'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(172.295 72.8809)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n2'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_node <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> nid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'POINT(-217.813 -581.18)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n3'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_edge <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> snid<span style="color: #66cc66;">,</span> tnid<span style="color: #66cc66;">,</span> s_zip<span style="color: #66cc66;">,</span> t_zip<span style="color: #66cc66;">,</span> appyear<span style="color: #66cc66;">,</span> patent<span style="color: #66cc66;">,</span> pat_type<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'LINESTRING(-206.829 790.104,-200.639 791.055)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n121'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n365'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05452'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'1997'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'5902044'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'U'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> sn_edge <span style="color: #66cc66;">&#40;</span> the_geom<span style="color: #66cc66;">,</span> snid<span style="color: #66cc66;">,</span> tnid<span style="color: #66cc66;">,</span> s_zip<span style="color: #66cc66;">,</span> t_zip<span style="color: #66cc66;">,</span> appyear<span style="color: #66cc66;">,</span> patent<span style="color: #66cc66;">,</span> pat_type<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span> GeomFromText<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'LINESTRING(-206.829 790.104,-231.181 757.468)'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n121'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'n214'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'05403'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'1998'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'6134704'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'U'</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>生成了SQL的INSERT INTO 语句后，然后加上创建数据库和构建索引的语句</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> sn_node <span style="color: #66cc66;">&#40;</span>
id serial<span style="color: #66cc66;">,</span>
nid <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">SELECT</span> AddGeometryColumn<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">''</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'sn_node'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'the_geom'</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">900913</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'POINT'</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> sn_node_index <span style="color: #993333; font-weight: bold;">ON</span> sn_node <span style="color: #993333; font-weight: bold;">USING</span> GIST <span style="color: #66cc66;">&#40;</span> the_geom <span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>所有的SQL语句组成了一个SQL文件，如果你有PgAdminIII，导入不是繁琐的事情。不再熬述了。uDig可以直接读取PostgreSQL里面的数据，然后我在uDig里面可以绘制出社会网络的模型，也可uDig输出shapefile，再用ArcGIS读取并展示。如图所示：</p>
<p><img class="alignnone size-full wp-image-1441" title="ArcGIS 显示 SNA" src="/wp-content/uploads//200091031_sna2.jpg" alt="ArcGIS 显示 SNA" width="500" height="478" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/10/%e5%88%a9%e7%94%a8python%e8%a7%a3%e6%9e%90%e5%9f%ba%e4%ba%8egraphml%e7%9a%84%e7%9a%84%e7%a4%be%e4%bc%9a%e7%bd%91%e7%bb%9c%e5%b9%b6%e7%94%a8gis%e5%b1%95%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>两个GIS编程技巧</title>
		<link>http://www.geoinformatics.cn/2009/06/%e4%b8%a4%e4%b8%aagis%e7%bc%96%e7%a8%8b%e6%8a%80%e5%b7%a7/</link>
		<comments>http://www.geoinformatics.cn/2009/06/%e4%b8%a4%e4%b8%aagis%e7%bc%96%e7%a8%8b%e6%8a%80%e5%b7%a7/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 13:26:21 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[GeoRSS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[KML]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=1060</guid>
		<description><![CDATA[Jquery如何获得在同一XML文档中的多个namespace下的属性值？ 对于GIS编程，一定会遇到处理多个namespace的XML文档，简单的例子，就拿GeoRSS来说，他就经常带着atom，geo，rss等多个namespace，看了很多国内的文献都没有一个很好的解答，一般来说，比如 &#60;atom :entry xmlns:atom=&#34;http://www.w3.org/2005/Atom&#34;&#62;&#60;/atom&#62; &#60;atom :content type=&#34;text&#34;&#62;blah blah&#60;/atom&#62; 会用 $(xml).find(&#8216;atom\\:content&#8217;).eq(0).text() 语句来获取atom中content 标签的值。也就是说，用 “\\”。但是有个问题，因为年久未看，好象是google chrome还是IE 8不支持这种方法。比较好的方式是 jQuery(entries).find(&#34;[@nodeName=namespace:elementName]&#34;); 也就是用@nodeName=namespace:elementName的方式获得。详见http://www.nabble.com/namespaces-XML-parsing-td22583488s27240.html的第二篇回帖。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 第二个问题就是上次帮andrei找如何获得地表上任意经纬度的高程值。我用firebug稍微hacking了一下USGS的一个小的WebServices。如下 http://gisdata.usgs.net/xmlwebservices2/(S(iciielatfvaogp3vexkkn1vy))/elevation_result2.aspx?X=-80.47201518072289&#038;Y=42.16883603773585 x为经度，y为纬度。然后就会通过http返回其高程值（feet），返回结果如下所示 Elevation at -80.47201518072289,42.16883603773585 = 570.301846882179 FEET ( NED 1/3rd arc-second: Eastern United States ) 好处在于，可以提供程序获得任何点的高程值只要usgs一直暴露这个webservice。]]></description>
			<content:encoded><![CDATA[<p>Jquery如何获得在同一XML文档中的多个namespace下的属性值？<br />
对于GIS编程，一定会遇到处理多个namespace的XML文档，简单的例子，就拿GeoRSS来说，他就经常带着atom，geo，rss等多个namespace，看了很多国内的文献都没有一个很好的解答，一般来说，比如</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;atom</span> :entry <span style="color: #000066;">xmlns:atom</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2005/Atom&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/atom<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;atom</span> :content <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>blah blah<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/atom<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>会用 $(xml).find(&#8216;atom\\:content&#8217;).eq(0).text() 语句来获取atom中content 标签的值。也就是说，用 “\\”。但是有个问题，因为年久未看，好象是google chrome还是IE 8不支持这种方法。比较好的方式是</p>

<div class="wp_syntax"><div class="code"><pre class="json" style="font-family:monospace;">jQuery(entries).find(&quot;[@nodeName=namespace:elementName]&quot;);</pre></div></div>

<p>也就是用@nodeName=namespace:elementName的方式获得。详见http://www.nabble.com/namespaces-XML-parsing-td22583488s27240.html的第二篇回帖。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
第二个问题就是上次帮andrei找如何获得地表上任意经纬度的高程值。我用firebug稍微hacking了一下USGS的一个小的WebServices。如下</p>
<p>http://gisdata.usgs.net/xmlwebservices2/(S(iciielatfvaogp3vexkkn1vy))/elevation_result2.aspx?X=-80.47201518072289&#038;Y=42.16883603773585</p>
<p>x为经度，y为纬度。然后就会通过http返回其高程值（feet），返回结果如下所示</p>

<div class="wp_syntax"><div class="code"><pre class="json" style="font-family:monospace;">Elevation at -80.47201518072289,42.16883603773585 = 570.301846882179 FEET ( NED 1/3rd arc-second: Eastern United States )</pre></div></div>

<p>好处在于，可以提供程序获得任何点的高程值只要usgs一直暴露这个webservice。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/06/%e4%b8%a4%e4%b8%aagis%e7%bc%96%e7%a8%8b%e6%8a%80%e5%b7%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>幸福着你的幸福，query着你的query。</title>
		<link>http://www.geoinformatics.cn/2009/01/%e5%b9%b8%e7%a6%8f%e7%9d%80%e4%bd%a0%e7%9a%84%e5%b9%b8%e7%a6%8f%ef%bc%8cquery%e7%9d%80%e4%bd%a0%e7%9a%84query%e3%80%82/</link>
		<comments>http://www.geoinformatics.cn/2009/01/%e5%b9%b8%e7%a6%8f%e7%9d%80%e4%bd%a0%e7%9a%84%e5%b9%b8%e7%a6%8f%ef%bc%8cquery%e7%9d%80%e4%bd%a0%e7%9a%84query%e3%80%82/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 08:07:25 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=868</guid>
		<description><![CDATA[好久不写blog，有点手生。 记得以前用Ext的时候，就超级鄙视DOM，后来有了Jquery，就开始鄙视EXT。Jquery用熟悉了，EXT不稀罕用，怕后来花钱；Mootools不想用，怕费工夫。说的直白一点，习惯用Jquery，所以就像守着自己的老婆孩子和热炕头，不愿意搭理其他，不过话说回来，Jquery的优秀也是有目共睹的。久而久之，自己的编程习惯越来越靠向Jquery Style。 2009 Spring Semester伊始，思量自己web编程的思路，加之2009年将放到climate change 以及transportation modelling的编程，我开始慢慢回归一些比较basic的技术问题：服务器脚本用什么？客户端脚本有用什么。 先说服务器端，.NET和php是我常用。而对于WebGIS方面，MS4W可以说功能非常强大，他结合了apache, mapserver以及proj4， GDAL/OGR 等常用的开源GIS类库，使开发基于php的GIS服务器更加高效，尽管php在服务器脚本方面表现出众，但是对于大型的服务器端任务，仍有一定差距。后来，我接触了python, 使用了mod_python， Django，trac，svn等，基于python开发服务器服务越来越得心应手，同时，大量的基于python的科学计算库可被借鉴使用。大大降低了利用python开发复杂的服务的难度。08年9上旬的where2.0会议，houstonCrimeMap的开发者Justin Bronn做了关于GeoDjango的精彩演讲，GeoDjango在我看来，非常类似MS4W，虽然说GeoDjango的功能还远远达不到MS4W那么强大，至少还不提供地图发布的功能。但是Mapnik已经将和GeoDjango的整合提上议程。基于上述原因，我希望以后能够更多的基于GeoDjango开发网络应用，其原因主要有1）优美的url 2）快捷的MTV模式 3）python强大的wrapper功能以及对GIS libraries的高效利用。 4） 大量基于python的科学计算类库。同时，还发现了拥有和Jqeury类似语法的pyQuery。不得不说，我喜欢jquery的风格。pyQuery继承了Jquery，并有效的和python语法相融合。如果要处理XML，pyQuery是不二候选。 再说服务器端，在javascript环境下，最令人头的并不是debug，而是cross-browsers。IE7，FireFox，Opera，Safari，and even Chrome&#8230; &#8230; 有太多浏览器，这使得即使相同一段javascript代码，仍会产生不同的结果。所以程序员们利用flash降低对浏览器parser的依赖。微软眼馋Flash，于是乎发布了silverlight来处理客户端脚本和可视化客户端对象。actionscript相比javascript和silverlight有着不可比的优势。actionscript比javascript更加面向对象，图像效果也更好，actionscript比silverlight更具有跨平台性的。所以，我希望自己今后能更多的使用actionscript来进行前台程序开发。这样不光能发挥flash强大的图形处理性能，同时也能够避免javascript繁琐的不同浏览器处理一致性的调试过程。其实，我也时常思索，宁可多花点时间使用actionscript，也别把太多时间浪费在使用javascript调试sytle。。同时，在actionscript，as3query来进行类似jquery的操作。as3query是本月14号由一位帅气的日本程序员nitoyon先生编写发行。论坛评价非常高，虽然as3query没有ajax功能，但这并不妨碍as3query是对于actionsript快捷的操作，特别是渲染flash的时候，as3query更是作用斐然。 就先说到这里，有啥情况大家交流。]]></description>
			<content:encoded><![CDATA[<p>好久不写blog，有点手生。</p>
<p>记得以前用Ext的时候，就超级鄙视DOM，后来有了Jquery，就开始鄙视EXT。Jquery用熟悉了，EXT不稀罕用，怕后来花钱；Mootools不想用，怕费工夫。说的直白一点，习惯用Jquery，所以就像守着自己的老婆孩子和热炕头，不愿意搭理其他，不过话说回来，Jquery的优秀也是有目共睹的。久而久之，自己的编程习惯越来越靠向Jquery Style。</p>
<p>2009 Spring Semester伊始，思量自己web编程的思路，加之2009年将放到climate change 以及transportation modelling的编程，我开始慢慢回归一些比较basic的技术问题：服务器脚本用什么？客户端脚本有用什么。</p>
<p>先说服务器端，.NET和php是我常用。而对于WebGIS方面，MS4W可以说功能非常强大，他结合了apache, mapserver以及proj4， GDAL/OGR 等常用的开源GIS类库，使开发基于php的GIS服务器更加高效，尽管php在服务器脚本方面表现出众，但是对于大型的服务器端任务，仍有一定差距。后来，我接触了python, 使用了mod_python， Django，trac，svn等，基于python开发服务器服务越来越得心应手，同时，大量的基于python的科学计算库可被借鉴使用。大大降低了利用python开发复杂的服务的难度。08年9上旬的where2.0会议，houstonCrimeMap的开发者Justin Bronn做了关于GeoDjango的精彩演讲，GeoDjango在我看来，非常类似MS4W，虽然说GeoDjango的功能还远远达不到MS4W那么强大，至少还不提供地图发布的功能。但是Mapnik已经将和GeoDjango的整合提上议程。基于上述原因，我希望以后能够更多的基于GeoDjango开发网络应用，其原因主要有1）优美的url 2）快捷的MTV模式 3）python强大的wrapper功能以及对GIS libraries的高效利用。 4） 大量基于python的科学计算类库。同时，还发现了拥有和Jqeury类似语法的<a href="http://pypi.python.org/pypi/pyquery" target="_blank">pyQuery</a>。不得不说，我喜欢jquery的风格。pyQuery继承了Jquery，并有效的和python语法相融合。如果要处理XML，pyQuery是不二候选。</p>
<p>再说服务器端，在javascript环境下，最令人头的并不是debug，而是cross-browsers。IE7，FireFox，Opera，Safari，and even Chrome&#8230; &#8230; 有太多浏览器，这使得即使相同一段javascript代码，仍会产生不同的结果。所以程序员们利用flash降低对浏览器parser的依赖。微软眼馋Flash，于是乎发布了silverlight来处理客户端脚本和可视化客户端对象。actionscript相比javascript和silverlight有着不可比的优势。actionscript比javascript更加面向对象，图像效果也更好，actionscript比silverlight更具有跨平台性的。所以，我希望自己今后能更多的使用actionscript来进行前台程序开发。这样不光能发挥flash强大的图形处理性能，同时也能够避免javascript繁琐的不同浏览器处理一致性的调试过程。其实，我也时常思索，宁可多花点时间使用actionscript，也别把太多时间浪费在使用javascript调试sytle。。同时，在actionscript，<a href="http://tech.nitoyon.com/blog/2008/01/as3query_alpha.html" target="_blank">as3query</a>来进行类似jquery的操作。as3query是本月14号由一位帅气的日本程序员nitoyon先生编写发行。论坛评价非常高，虽然as3query没有ajax功能，但这并不妨碍as3query是对于actionsript快捷的操作，特别是渲染flash的时候，as3query更是作用斐然。</p>
<p>就先说到这里，有啥情况大家交流。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2009/01/%e5%b9%b8%e7%a6%8f%e7%9d%80%e4%bd%a0%e7%9a%84%e5%b9%b8%e7%a6%8f%ef%bc%8cquery%e7%9d%80%e4%bd%a0%e7%9a%84query%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>transit trip planner的两三事</title>
		<link>http://www.geoinformatics.cn/2008/12/transit-trip-planner%e7%9a%84%e4%b8%a4%e4%b8%89%e4%ba%8b/</link>
		<comments>http://www.geoinformatics.cn/2008/12/transit-trip-planner%e7%9a%84%e4%b8%a4%e4%b8%89%e4%ba%8b/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 00:13:18 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[生活感悟]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dreams]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=859</guid>
		<description><![CDATA[四天三夜，transit trip planer，累啊，罗马可不能一天建成。]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads//200812141906transittripplanner.jpg" rel="shadowbox[sbpost-859];player=img;" title="Transit Trip Planner"><img class="alignnone size-full wp-image-861" title="Transit Trip Planner" src="/wp-content/uploads//200812141906transittripplanner.jpg" alt="" width="480" height="366" /></a></p>
<p>四天三夜，transit trip planer，累啊，罗马可不能一天建成。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2008/12/transit-trip-planner%e7%9a%84%e4%b8%a4%e4%b8%89%e4%ba%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重拾Ext，但又很快放下。</title>
		<link>http://www.geoinformatics.cn/2008/12/%e9%87%8d%e6%8b%beext%ef%bc%8c%e4%bd%86%e5%8f%88%e5%be%88%e5%bf%ab%e6%94%be%e4%b8%8b%e3%80%82/</link>
		<comments>http://www.geoinformatics.cn/2008/12/%e9%87%8d%e6%8b%beext%ef%bc%8c%e4%bd%86%e5%8f%88%e5%be%88%e5%bf%ab%e6%94%be%e4%b8%8b%e3%80%82/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 05:28:45 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=849</guid>
		<description><![CDATA[这年头，发现真的很难专一于同一软件，倪震也还是因为张茆抛弃了相依20年的周慧敏。对于我的软件生涯，早先用prototype，而后用Ext，现在又熟悉了Jquery，不时又因为Mootools的效果而感叹。这几天忙着写一个trip planner的程序，先前的client是用Jquery写的，首先来讲，自Dr. Qiu 介绍我用Jquery以来，我对它真是爱不释手，它让我的开发变得非常简单便捷。特别是selector，manipulation等功能，没有想象力的人是没法发明出如此高超的函数。但是我还是要提出一点对Jquery不满的地方，插件太多，太杂，虽然实现某一项功能是非常方便的，但是如果要去基于某项主题来使用一系列UI控件，就略显繁琐，虽然Jquery也注意到了这个问题，并且推出了自己的UI，but， it still have a long way to go. 于是乎，为了加快Trip Planner的开发进度，我重拾了Ext，毕竟当年用Ext开发了很多fancy的Web 应用，虽然我用Ext做了Layout以及其他组件，但是我还是不得不又将它放下，我的前台编程习惯已经被Jquery所俘虏，已无法适应Ext的语法。。倪震呀倪震，心野了，就算是温柔贤淑的周慧敏，你还是回不去呀。。。 罪过罪过。。。。。anyway，还是专注于Jquery吧。]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads//20081212zhangmonizhen.jpg" rel="shadowbox[sbpost-849];player=img;" title="倪震和张茆"><img class="size-medium wp-image-852 alignleft" title="倪震和张茆" src="/wp-content/uploads//20081212zhangmonizhen-226x300.jpg" alt="" width="226" height="300" /></a></p>
<p>这年头，发现真的很难专一于同一软件，倪震也还是因为张茆抛弃了相依20年的周慧敏。对于我的软件生涯，早先用prototype，而后用Ext，现在又熟悉了Jquery，不时又因为Mootools的效果而感叹。这几天忙着写一个trip planner的程序，先前的client是用Jquery写的，首先来讲，自Dr. Qiu 介绍我用Jquery以来，我对它真是爱不释手，它让我的开发变得非常简单便捷。特别是selector，manipulation等功能，没有想象力的人是没法发明出如此高超的函数。但是我还是要提出一点对Jquery不满的地方，插件太多，太杂，虽然实现某一项功能是非常方便的，但是如果要去基于某项主题来使用一系列UI控件，就略显繁琐，虽然Jquery也注意到了这个问题，并且推出了自己的UI，but， it still have a long way to go.</p>
<p>于是乎，为了加快Trip Planner的开发进度，我重拾了Ext，毕竟当年用Ext开发了很多fancy的Web 应用，虽然我用Ext做了Layout以及其他组件，但是我还是不得不又将它放下，我的前台编程习惯已经被Jquery所俘虏，已无法适应Ext的语法。。倪震呀倪震，心野了，就算是温柔贤淑的周慧敏，你还是回不去呀。。。</p>
<p>罪过罪过。。。。。anyway，还是专注于Jquery吧。</p>
<p><a href="/wp-content/uploads//20081212tripplanner.jpg" rel="shadowbox[sbpost-849];player=img;" title="基于Ext的Trip Planner的界面"><img class="alignnone size-full wp-image-851" title="基于Ext的Trip Planner的界面" src="/wp-content/uploads//20081212tripplanner.jpg" alt="" width="500" height="392" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2008/12/%e9%87%8d%e6%8b%beext%ef%bc%8c%e4%bd%86%e5%8f%88%e5%be%88%e5%bf%ab%e6%94%be%e4%b8%8b%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My galaxy.</title>
		<link>http://www.geoinformatics.cn/2008/11/my-galaxy/</link>
		<comments>http://www.geoinformatics.cn/2008/11/my-galaxy/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 22:39:26 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[NASA]]></category>
		<category><![CDATA[Universe]]></category>

		<guid isPermaLink="false">http://www.geoinformatics.cn/?p=820</guid>
		<description><![CDATA[Finally, I decide to change my homepage, my galaxy, looks good, huh?]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/20081117-homepage.jpg" rel="shadowbox[sbpost-820];player=img;" title="new home page"><img class="alignnone size-full wp-image-821" title="new home page" src="/wp-content/uploads/20081117-homepage.jpg" alt="" width="480" height="393" /></a></p>
<p>Finally, I decide to change my homepage, my galaxy, looks good, huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2008/11/my-galaxy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FDOT Video Log and Jquery Cycle</title>
		<link>http://www.geoinformatics.cn/2008/11/fdot-video-log-and-jquery-cycle/</link>
		<comments>http://www.geoinformatics.cn/2008/11/fdot-video-log-and-jquery-cycle/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 19:23:28 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[WebGIS]]></category>

		<guid isPermaLink="false">http://blog.geoinformatics.cn/?p=802</guid>
		<description><![CDATA[FDOT Video Log是最近做的一个demo，当汽车行进的时候，会播放Video,显示路上的情景，该应用主要是基于Jquery的cycle，cycle的功能确实强大，对于管理图片，进行slideshow，cycle有它集成化的设计思想，不过我在编程的时候遇到了不少cycle的bug，比如pause和resume后，指针所在图片的位置等，本以为仍在远处，其实已经更改。 Google 的satellite的服务器罢工，记录之。（1734PM，2008.11.15.）]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakobzhao.gicp.net:8000/floridatrans" target="_blank">FDOT Video Log</a>是最近做的一个demo，当汽车行进的时候，会播放Video,显示路上的情景，该应用主要是基于<a href="http://malsup.com/jquery/cycle/ " target="_blank">Jquery</a>的cycle，cycle的功能确实强大，对于管理图片，进行slideshow，cycle有它集成化的设计思想，不过我在编程的时候遇到了不少cycle的bug，比如pause和resume后，指针所在图片的位置等，本以为仍在远处，其实已经更改。</p>
<p><a href="http://blog.geoinformatics.cn/wp-content/uploads/20081116-fdot.jpg" rel="shadowbox[sbpost-802];player=img;" title="video log"><img class="alignnone size-full wp-image-809" title="video log" src="http://blog.geoinformatics.cn/wp-content/uploads/20081116-fdot.jpg" alt="" width="480" height="278" /></a></p>
<p><span style="text-decoration: line-through;">Google 的satellite的服务器罢工，记录之。（1734PM，2008.11.15.）</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2008/11/fdot-video-log-and-jquery-cycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS Boxes</title>
		<link>http://www.geoinformatics.cn/2008/11/js-boxes/</link>
		<comments>http://www.geoinformatics.cn/2008/11/js-boxes/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 22:23:22 +0000</pubDate>
		<dc:creator>长安旧梦</dc:creator>
				<category><![CDATA[技术心得]]></category>
		<category><![CDATA[Dreams]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://blog.geoinformatics.cn/?p=800</guid>
		<description><![CDATA[基于JS 的编程，最近做了不少，发现有些时候，可以把客户端做的很强大，这样省去了很多服务器端的工作。我曾经试图让teammate使用基于Jquery的boxes来实现fadein，fadeout以及更多的功能。但是不幸的发现Jquery的控件大多会落入CSS冲突的陷阱。 这里要向大家介绍的控件主要有 Thickbox Lightbox Lytebox Shadowbox 前三个主要是基于Jquery，而shadowbox可以使用不同的内核，关于效果effects，Shadowbox是最炫酷的，Lytebox也很不错。Thickbox和lighbox略显次之，主要是在先前的等待事，Lytebox与shadowbox都使用了fadeout和fadein的效果，而Thickbox与Lightbox主要是基于ajaxload，我个人不是很喜欢。 Dec. 10th, 2008: 发现还有很多诸如此类的box，比如facebox，lightview，如果你有时间，可以花半个小时到各个控件的网站去体会一下。]]></description>
			<content:encoded><![CDATA[<p>基于JS 的编程，最近做了不少，发现有些时候，可以把客户端做的很强大，这样省去了很多服务器端的工作。我曾经试图让teammate使用基于Jquery的boxes来实现fadein，fadeout以及更多的功能。但是不幸的发现Jquery的控件大多会落入CSS冲突的陷阱。</p>
<p>这里要向大家介绍的控件主要有</p>
<p><a href="http://jquery.com/demo/thickbox/ " target="_blank">Thickbox</a></p>
<p><a href="http://www.huddletogether.com/projects/lightbox/">Lightbox</a></p>
<p><a href="http://dolem.com" target="_blank">Lytebox</a></p>
<p><a href="http://mjijackson.com/shadowbox/">Shadowbox</a></p>
<p>前三个主要是基于Jquery，而shadowbox可以使用不同的内核，关于效果effects，Shadowbox是最炫酷的，Lytebox也很不错。Thickbox和lighbox略显次之，主要是在先前的等待事，Lytebox与shadowbox都使用了fadeout和fadein的效果，而Thickbox与Lightbox主要是基于ajaxload，我个人不是很喜欢。</p>
<p>Dec. 10th, 2008: 发现还有很多诸如此类的box，比如facebox，lightview，如果你有时间，可以花半个小时到各个控件的网站去体会一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.geoinformatics.cn/2008/11/js-boxes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

