flex polygon 序列化为txt 文本
当我们要把一个地块导出为txt的时候,应该怎么写,这是比较有用的这样可以帮助我们存档之类的,这里是基于某个地方的独立坐标系,是基于自己发布地图,如果是用百度地图或者其他网上的地图可能不适用。
package com.szpl.extension.util
{
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polygon;
import com.esri.ags.layers.GraphicsLayer;
import com.esri.ags.symbols.SimpleFillSymbol;
import com.esri.ags.symbols.SimpleLineSymbol;
import com.szpl.extension.util.shp.shp.ShpPolygon; import flash.geom.Point; public class PointPolygonExchange
{
public function PointPolygonExchange()
{
} private var _pointstr:String=""; public function get pointstr():String
{
return _pointstr;
} public function set pointstr(value:String):void
{
_pointstr = value;
} // "x,y x,y x,y*x,y x,y..."
public function coordText_to_polygon(coordText:String):Polygon
{
var ringsText:Array = coordText.split("*"); var polygon:Polygon = new Polygon();
for each(var ringText:String in ringsText)
{
var ring:Array = coordText_to_Ring(ringText);
if(ring==null)
continue;
polygon.addRing(ring);
}
return polygon;
} public var xyChange:String = "x"; public function polygon_to_CoordText(polygon:*):String
{
var _polygon:Polygon = new Polygon();
if (polygon is ShpPolygon)
{
_polygon = (polygon as ShpPolygon).toPolygon();
}
else
{
_polygon = polygon as Polygon
}
xyChange = "x";
var polygonText:String="";
for each(var ring:Array in _polygon.rings)
{
var ringText:String = ring_to_CoordText(ring);
polygonText += ringText;
polygonText += "*";
} return polygonText.substr(0,polygonText.length -1);
} public function polygon_to_CoordTextXY(polygon:*):String
{
xyChange = "y";
var polygonText:String="";
for each(var ring:Array in polygon.rings)
{
var ringText:String = ring_to_CoordText(ring);
polygonText += ringText;
polygonText += "*";
} return polygonText.substr(0,polygonText.length -1);
} private function ring_to_CoordText(points:Array):String
{
var ringText:String="";
for each(var point:MapPoint in points)
{
var pointText:String = point_to_CoordText(point);
ringText += pointText;
ringText += " ";
}
return ringText.substr(0,ringText.length-1);
} private function coordText_to_Ring(coordText:String):Array
{
if(coordText=="")
return null;
var pointsText:Array = coordText.split(" ");
var ring:Array = new Array();
for each(var pointText:String in pointsText)
{
if(pointText!="")
{
var point:MapPoint = coordText_to_Point(pointText);
if (point != null)
ring.push(point);
} }
if (ring.length < 3)
return null;
ring.push(new MapPoint((ring[0] as MapPoint).x,(ring[0] as MapPoint).y));
return ring;
} private function point_to_CoordText(point:MapPoint):String
{
var x:String = point.x.toString();
var y:String = point.y.toString();
if(xyChange == "x")
return x + "," + y;
else
return y + "," + x;
} /// "343.234,23423.534"
private function coordText_to_Point(coordText:String):MapPoint{ var coord:Array = coordText.split(",");
if (coord.length != 2)
return null;
var x:Number = coord[1];
var y:Number = coord[0];
var point:MapPoint;
if (x > y)
point = new MapPoint(x, y, null);
else
point = new MapPoint(y, x, null);
return point;
} // "\r\n" ====> " "
public function txtFile_to_CoordText(txtFile:String):String
{
var regE:RegExp = new RegExp("\r\n", "g");
var str:String = txtFile.replace(regE," ");
return str;
} }
}
flex polygon 序列化为txt 文本的更多相关文章
- opencv从txt文本读取像素点并显示
opencv从txt文本读取像素点并显示 文本储存格式为每行一个像素点,排列为RGB.每帧图像的帧头为65535. 如下图所示 废话不多说,代码如下: // #include <iostrea ...
- 将搜狗词库.scel格式转化为.txt格式
由于项目中要用到词库,而下载的搜狗词库是.scel格式,所以就用python脚本将搜狗词库.scel格式文件转化为.txt格式文件. #!/bin/python # -*- coding: utf-8 ...
- JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象
JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...
- 将 C# 枚举序列化为 JSON 字符串 基础理论
该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的. 一.定义枚举 /// <summary> /// 托寄物品枚举 /// </summary> ...
- JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。
JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...
- java 使用xom对象数据序列化为xml、反序列化、Preferences相关操作小案例
package org.rui.io.xml; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import ...
- ArcGIS Wpf MarkerSymbol 图形符号无法序列化为 JSON
[问题贴,尚不知如何解决] 在GraphicsLayer中添加一个点,使用自定义模板渲染该点,在Vs2012设计界面可以看到,但运行时出现异常 代码如下: <esri:Graphic x:Nam ...
- Qt txt文本中获取字符串的问题
QT对txt文本进行读写一般是采用QFile和QTextStream结合使用,在此不细说,主要说一下读取txt文本的注意事项.因为txt文本中有中文也有英文还有数字,要准确获得需要的字串可就要多一个心 ...
- Jquery 将表单序列化为Json对象
大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法.不过,我们可以写一个插件实现. 我在网上看到有人用替换的方法,先用 ...
随机推荐
- leetcode N-Queens/N-Queens II, backtracking, hdu 2553 count N-Queens, dfs 分类: leetcode hdoj 2015-07-09 02:07 102人阅读 评论(0) 收藏
for the backtracking part, thanks to the video of stanford cs106b lecture 10 by Julie Zelenski for t ...
- C++中不同数据类型的互相转换
1.string --> char * char * p = (char*)str.c_str(); 2.char * -->string char *p = "aaa& ...
- MJRefresh的一个注意事项
如果从视图一跳转到视图二之后,在视图二中进行MJRefresh的刷新操作,那么在推出试图二之前要用dealloc函数将MJRefreshHeaderView或者MJRefreshFooterView释 ...
- iOS视图控制器的生命周期
今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过 ...
- java中Collection类及其子类
1:对象数组(掌握) (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组. 2:集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java ...
- HDU 1508 DP
题意:规定一个数列 = {这个数的质因子只能包括2,3,5,7},求第n个数字是多少: 思路:暴力打表,然后只粘数据,虽然过了,但是正解其实是DP,每一个数字都是由某一个该数列里的某一个数字乘以2,3 ...
- Boundaries
Using Third-Party Code There is a natural tension between the provider of an interface and the user ...
- 使用OpenXML操作Office文档
使用OpenXML类库, 以编程的方式来访问PowerPoint, Word, Excel等文档, 有时能够为我们批量编辑文档提供方便. 最近项目中遇到的两个任务是: 1. 替换文档中的图片的Alt ...
- iOS开发中检测版本,有新版本则更新
iOS程序自动提示更新的实现方案大致分为两种: 第一种,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 . 第二种,就是利用苹果的appstore 提供的相关ap ...
- [原创]cocos2d-x研习录-第二阶 概念类之导演类(CCDirector)
CCDirector类是游戏的组织和控制中心(总指挥),它控制着主屏幕的显示.场景的切换和显示,以及游戏的开始.结束和暂停.它的继承关系图如下: CCDirector继承自基类CCObject, ...