ArcGIS Flex API 中的 Flex 技术(四)--XML 解析

简介:
XML已经成为一种数据传输标准,解析XML是现在任何一门语言的基本功能,解析XML需要先了解XML的组成结构、遍历方式,可以先在互联网搜索。使用ArcGIS Flex API去解析XML的一个主要场景是在"回调"阶段,Demo "Reading GeoRSS feeds"中的GeoRSSUtil.as包含了一些基本应用方法。

复制代码
Code
package com.esri.ags.samples
{

import com.esri.ags.geometry.Geometry;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polygon;

import mx.utils.StringUtil;
    
public class GeoRSSUtil
{
    private static const GEORSS : Namespace 
= Namespaces.GEORSS_NS;
    private static const GEOWGS : Namespace 
= Namespaces.GEOWGS_NS;
    private static const GEO : Namespace 
= Namespaces.GEO_NS;
    private static const GML : Namespace 
= Namespaces.GML_NS;
     
    public 
function GeoRSSUtil(singletonEnforcer:SingletonEnforcer)
    {
    }

    public static 
function toGeometry( x : XML ) : Geometry
    {
        const geoLat : String 
= String(x.GEOWGS::lat );
        const geoLon : String 
= String(x.GEOWGS::long );
        
if( geoLat && geoLon )
        {
            
return new MapPoint( Number( geoLon ), Number( geoLat ));
        }
        
        const georssPoint : String 
= String(x.GEORSS::point);
        
if( georssPoint )
        {
            
return parseGeoRSSPoint(georssPoint);
        }
        
        const pointList : XMLList 
= x.GEO::point;
        
if( pointList && pointList.length() > 0 )
        {
            const geoPoint : XML 
= pointList[0];
            const geoPLat : Number 
= Number(geoPoint.GEO::lat);
            const geoPLon : Number 
= Number(geoPoint.GEO::long);
            
return new MapPoint( geoPLon, geoPLat );
        }
        
        const georssPolygon : String 
= String(x.GEORSS::polygon);
        
if( georssPolygon )
        {
            
return parseGeoRSSPolygon( georssPolygon);
        }        
                
        const whereList : XMLList 
= x.GEORSS::where;
        
if( whereList && whereList.length() > 0 )
        {
            const pos : String 
= whereList[0].GML::Point[0].GML::pos[0];
            const arr : Array 
= pos.split(" ");
            const gmlLat : Number 
= Number(arr[0]);
            const gmlLon : Number 
= Number(arr[1]);
            
return new MapPoint( gmlLon, gmlLat );
        }                        
        
return null;
    }
    
    private static 
function parseGeoRSSWhere( x : XML ) : Geometry
    {
        
return null;
    }
    
    private static 
function parseGeoRSSPoint( text : String ) : Geometry
    {
        const tokens : Array 
= StringUtil.trim(text).split(" ");
        const lat : Number 
= Number(tokens[0]);
        const lon : Number 
= Number(tokens[1]);
        
return new MapPoint( lon, lat);         
    }
    
    private static 
function parseGeoRSSPolygon( text : String ) : Geometry
    {
        const path : Array 
= [];
        const tokens : Array 
= StringUtil.trim(text).split(" ");
        
forvar i:int=0, j:int=1; j < tokens.length; i+=2, j+=2 )
        {
            
var lat : Number = Number(tokens[i]);
            
var lon : Number = Number(tokens[j]);
            path.push( 
new MapPoint( lon, lat) );   
        }
        
return new Polygon([path]);
    }

}
}

class SingletonEnforcer
{    
}
复制代码

    XML解析中的中文编码是经常会碰到的一个问题,但万变不离其宗——UTF-8,请参考这两篇文章:

    说到GeoRSS,GeoRSS是一种地理位置搜索与聚合的方法,在地图上显示当前消息的地理位置,标注出来,点击查询时可以访问该消息的具体内容,如在地图上以GeoRSS方式标识会议地点,点击之后可以继续挖掘信息,一月前我就是通过GeoRSS找到了Oracle开发者大会具体位置和时间。

 本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2008/12/21/1359162.html,如需转载请自行联系原作者

相关文章
|
5月前
|
JSON API 数据格式
亚马逊商品评论API接口技术指南
亚马逊商品评论API可程序化获取指定ASIN商品的用户评价,包含评分、内容、时间等结构化数据。需企业认证并遵守使用协议,日调用上限500次。支持分页与排序查询,适用于竞品分析、口碑监测等场景,结合SP-API可构建完整电商数据方案。(238字)
503 3
|
5月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
480 2
|
5月前
|
JSON 算法 API
1688比价API接口:实现商品价格高效比较的技术指南
本文介绍1688比价API的核心功能与实战应用,涵盖接口调用、Python代码实现及价格比较算法优化。助您快速集成商品比价功能,提升电商开发效率。
674 3
|
5月前
|
JSON 安全 API
淘宝天猫上货API接口技术指南
本文介绍淘宝天猫上货API,详解其RESTful接口原理、认证流程及Python调用示例。涵盖商品添加、签名生成、响应处理,并提供代码实现与最佳实践,助力开发者高效实现自动化批量上架。
500 3
|
5月前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
1143 1
|
5月前
|
JSON 安全 API
1688批量上货API接口技术指南
本文介绍1688批量上货API的集成与使用,涵盖认证、请求构建及错误处理。通过Python示例代码,助您实现商品信息批量上传,提升电商运营效率。
295 1
|
5月前
|
JSON 搜索推荐 API
拼多多商品详情API技术指南
拼多多商品详情API(pdd.goods.detail.get)支持通过商品ID获取商品标题、价格、销量、图片、库存及评价等详细信息,适用于电商数据分析、竞品监控与价格策略优化,返回标准JSON格式,便于集成开发。
|
5月前
|
JSON API 开发者
1688按关键词搜索商品的API接口技术指南
本文介绍如何使用1688开放平台API实现商品关键词搜索,涵盖API概述、权限申请、调用步骤、Python代码示例及注意事项,助力开发者高效集成商品搜索功能,适用于电商自动化、价格监控等场景,内容基于官方文档,确保准确可靠。
581 0
|
5月前
|
存储 缓存 算法
淘宝买家秀 API 深度开发:多模态内容解析与合规推荐技术拆解
本文详解淘宝买家秀接口(taobao.reviews.get)的合规调用、数据标准化与智能推荐全链路方案。涵盖权限申请、多模态数据清洗、情感分析、混合推荐模型及缓存优化,助力开发者提升审核效率60%、商品转化率增长28%,实现UGC数据高效变现。
|
6月前
|
监控 供应链 数据挖掘
探秘1688详情API接口:解锁无限应用场景的技术密钥
1688详情API接口是电商运营的“数据钥匙”,可实时获取商品价格、销量、库存等信息,广泛应用于数据分析、竞品监控、智能选品与自动补货,助力商家提升决策效率与盈利能力,抢占市场先机。
99 0

推荐镜像

更多
  • DNS