两个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。
相关文章:
