当我们要把一个地块导出为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 文本的更多相关文章

  1. opencv从txt文本读取像素点并显示

    opencv从txt文本读取像素点并显示 文本储存格式为每行一个像素点,排列为RGB.每帧图像的帧头为65535.  如下图所示 废话不多说,代码如下: // #include <iostrea ...

  2. 将搜狗词库.scel格式转化为.txt格式

    由于项目中要用到词库,而下载的搜狗词库是.scel格式,所以就用python脚本将搜狗词库.scel格式文件转化为.txt格式文件. #!/bin/python # -*- coding: utf-8 ...

  3. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  4. 将 C# 枚举序列化为 JSON 字符串 基础理论

    该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的. 一.定义枚举 /// <summary> /// 托寄物品枚举 /// </summary> ...

  5. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  6. java 使用xom对象数据序列化为xml、反序列化、Preferences相关操作小案例

    package org.rui.io.xml; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import ...

  7. ArcGIS Wpf MarkerSymbol 图形符号无法序列化为 JSON

    [问题贴,尚不知如何解决] 在GraphicsLayer中添加一个点,使用自定义模板渲染该点,在Vs2012设计界面可以看到,但运行时出现异常 代码如下: <esri:Graphic x:Nam ...

  8. Qt txt文本中获取字符串的问题

    QT对txt文本进行读写一般是采用QFile和QTextStream结合使用,在此不细说,主要说一下读取txt文本的注意事项.因为txt文本中有中文也有英文还有数字,要准确获得需要的字串可就要多一个心 ...

  9. Jquery 将表单序列化为Json对象

    大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法.不过,我们可以写一个插件实现. 我在网上看到有人用替换的方法,先用 ...

随机推荐

  1. linux kernel tainted

    日志中会有一些信息: dmesg | grep -i tainted 具体代码可以通过proc看到: cat /proc/sys/kernel/tainted 数字的意义: tainted: Non- ...

  2. 安装java和jmeter

    win7 64位 安装java 1.下载java开发工具包JDK,在硬盘创建java文件夹,在里面创建jdk1.8.0_101和jre1.8.0_101 2.安装jdk,第一个路径装在jdk1.8.0 ...

  3. 为什么在保护模式下IA-32处理器最高可访问4GB的内存

    在保护模式下,IA-32处理器可访问最高达4GB的内存,这是32位无符号二进制整数地址能够寻址的上限.  今天看汇编的时候发现书里带过一句,不太明白为什么内存上限是4GB,就搜了一下,总结了一下答案. ...

  4. IOS 在控制器间跳转实现过渡动画

    已经掌握了CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何实现呢? MyViewController *myVC = [[MyViewControll ...

  5. Android HandlerThread 的使用及其Demo

    今天我们一起来学习下一个Android中比较简单的类HandlerThread,虽然它的初始化有点小麻烦. 介绍 首先我们来看看为什么我们要使用HandlerThread?在我们的应用程序当中为了实现 ...

  6. Day17_集合第三天

    1.HashSet类(掌握) 1.哈希值概念      哈希值:哈希值就是调用对象的hashCode()方法后返回的一个int型数字      哈希桶:简单点理解就是存储相同哈希值对象的一个容器 1. ...

  7. php建立MySQL数据表

    <?php $connect = mysql_connect("127.0.0.1","root",""); mysql_select ...

  8. python数据结构与算法——图的广度优先和深度优先的算法

    根据维基百科的伪代码实现: 广度优先BFS: 使用队列,集合 标记初始结点已被发现,放入队列 每次循环从队列弹出一个结点 将该节点的所有相连结点放入队列,并标记已被发现 通过队列,将迷宫路口所有的门打 ...

  9. C#的输入、输出与运算符、数据类型

    (1)Visual Studio.NET起始页 启动Visual Studio.NET后,首先看到一个如下图所示的起始页.在起始页可以打开已有的项目或建立新的项目. (2)新建Visual1C# .n ...

  10. python 杨辉三角

    前提:端点的数为1. 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 第n行的数字有n项. 第n行数字和为2n-1. 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同 ...