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的方法.不过,我们可以写一个插件实现. 我在网上看到有人用替换的方法,先用 ...
随机推荐
- vbs常用代码
在网上查找资料的时候发现好多经典的vbs代码收集起来也为了以后学习. VBS播放音乐 Dim wmp Set wmp = CreateObject("WMPlayer.OCX") ...
- Java中的HashSet和TreeSet
1:Set集合(理解) (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和eq ...
- 2014年5月份第2周51Aspx源码发布详情
Reapter手写分页控件源码 2014-5-12 [VS2010]源码描述:实现repeater控件分页,方便好用,界面设计也很漂亮.数据库是Access,可直接运行.入口是RepeaterTes ...
- poj3268 最短路
//Accepted 1124 KB 0 ms #include <cstdio> #include <cstring> #include <iostream> # ...
- PAT (Basic Level) Practise:1012. 数字分类
[题目链接] 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3- ...
- Sublime Text 3开启自动换行
在Submine Text 3中要开启自动换行功能只需要两个步骤: 1.找到查看(View) 2.点击弹出菜单中的自动换行即可 但是如果是在2中的话就相对麻烦少少,现在也说下其开启自动换行功能的步骤: ...
- jQuery plugin: Autocomplete 参数及实例
官网:jQuery plugin: Autocomplete (注:此插件已经不再更新.它的继任者是jQuery UI的一部分,) 此插件依赖于 jquery 1.2.6 --- j ...
- python windows终端窗口下输出编码错误
windows简体中文版下终端默认字符集gbk,执行chcp 65001临时修改字符集. 修改默认字符集:注册表HKEY_CURRENT_USER\Console项中CodePage值修改为65001
- Extjs控制面板组件
(1)aoolyTo:(id) renderTo:(id)呈现在哪个html里面,同上 id最好用"" contentEI:() 呈现哪个html元素里面,把eI内的内容呈现 ( ...
- Python 学习之 NumPy
NumPy(Numerical Python的简称) 是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表 ...