• 两个GIS编程技巧

    作者:  • 2009 年 6 月 18 日 • 技术主义 • 暂无评论

    Jquery如何获得在同一XML文档中的多个namespace下的属性值?
    对于GIS编程,一定会遇到处理多个namespace的XML文档,简单的例子,就拿GeoRSS来说,他就经常带着atom,geo,rss等多个namespace,看了很多国内的文献都没有一个很好的解答,一般来说,比如

    <atom :entry xmlns:atom="http://www.w3.org/2005/Atom"></atom>
    <atom :content type="text">blah blah</atom>

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

    jQuery(entries).find("[@nodeName=namespace:elementName]");

    也就是用@nodeName=namespace:elementName的方式获得。详见http://www.nabble.com/namespaces-XML-parsing-td22583488s27240.html的第二篇回帖。
    ——————————————————————-
    第二个问题就是上次帮andrei找如何获得地表上任意经纬度的高程值。我用firebug稍微hacking了一下USGS的一个小的WebServices。如下

    http://gisdata.usgs.net/xmlwebservices2/(S(iciielatfvaogp3vexkkn1vy))/elevation_result2.aspx?X=-80.47201518072289&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。

    相关文章:

    关于

    生于古城長安,求學金陵,輾轉赴美深造,現漂泊於長安與北京。

    http://www.yenching.org