网络运营路测数据展示技术剖析之数据来源获取及投影
分享
1、数据来源获取
数据源获取有多种方式:
1)通过ArcGIS桌面将业务数据库数据导出成ArcGIS要素类,这种方式是最原始的,也比较简单
2)通过AO程序自动将业务表读取到SDE数据库中,实现数据的自动后面导入,这个在后续博客中,也会和大家分享
3)通过WebService,从业务客户端,自动生成数据展现,这是这篇博客采用的方式
如下:
2、数据投影
地图数据投影变换涉及到大量的算法,网上也不乏有很多介绍的,在这次研究中,我们还是直接用Flex API来实现,在客户端主要有两种实现方法:
1)客户端实现投影变化,对于WebMercator与地理坐标下的转变com.esri.ags.utils包下的WebMercatorUtil提供了转换现成的正投影及反投影的方法,对于一个特殊的投影也可以通过寻找相关投影变化的算法自己实现,建议慎重考虑。
2)通过远程服务器实现批量投影,需要通过ArcGIS Server发布的几何服务来实现 ,这也是本次博客要介绍的方法,代码如下:
文章来源:http://blog.csdn.net/esrichinacd/article/details/8095262
数据源获取有多种方式:
1)通过ArcGIS桌面将业务数据库数据导出成ArcGIS要素类,这种方式是最原始的,也比较简单
2)通过AO程序自动将业务表读取到SDE数据库中,实现数据的自动后面导入,这个在后续博客中,也会和大家分享
3)通过WebService,从业务客户端,自动生成数据展现,这是这篇博客采用的方式
如下:
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
var service:HTTPService = new HTTPService();
service.url = "http://*.*.*.*:*/wnms_web/3gtest/dtMap_view.cst";
service.useProxy = false;
service.resultFormat="text";
service.addEventListener(ResultEvent.RESULT,http_resultHandler);
service.addEventListener(FaultEvent.FAULT,http_resultHandler);
var param:URLVariables = new URLVariables();
param["vo.startTime"] = "2012.05.01 00:00:00";
param["vo.endTime"] = "2012.05.16 23:59:59";
param["uesvo.uesName"] = "1,2,3,4,5,6";
param["vo.chooseType"] = "1";
param["vo.chooseId"] = "-1";
param["vo.kpiId"] = "-1";
param["vo.phoneType"] = "-1";
param["vo.cellType"] = "-1";
service.send(param);
}
protected function http_resultHandler(event:ResultEvent):void
{
trace(1);
var data:String = event.result.toString();
data = data.replace( /\s/g, '' );
var jd:JSONDecoder = new JSONDecoder(data,true);
var obj:Object=jd.getValue();
arr=obj.vos;
map1_loadHandler(null);
}
2、数据投影
地图数据投影变换涉及到大量的算法,网上也不乏有很多介绍的,在这次研究中,我们还是直接用Flex API来实现,在客户端主要有两种实现方法:
1)客户端实现投影变化,对于WebMercator与地理坐标下的转变com.esri.ags.utils包下的WebMercatorUtil提供了转换现成的正投影及反投影的方法,对于一个特殊的投影也可以通过寻找相关投影变化的算法自己实现,建议慎重考虑。
2)通过远程服务器实现批量投影,需要通过ArcGIS Server发布的几何服务来实现 ,这也是本次博客要介绍的方法,代码如下:
protected function map1_loadHandler(event:MapEvent):void
{
trace(2);
//trace("lat-->" + arr[0].latitude);
//trace("lng-->" + arr[0].longitude);
//坐标投影
for(var i:int=0;i<arr.length;i++){
var lon:Number = arr[i].longitude as Number;
var lat:Number = arr[i].latitude as Number;
//var obj:Object = this.lonLat2Mercator({'x':lon,'y':lat});
var myPoint:Geometry = new MapPoint(arr[i].longitude, arr[i].latitude,new SpatialReference(4326));
points4326.addItem(myPoint);
}
projectNow(points4326.toArray());
}
//进行投影
private function projectNow(mapPoints4326:Array):void
{
var outSR:SpatialReference = new SpatialReference(3857);
// Note: GeometryService takes in geometries instead of graphics as input
geometryService.project(mapPoints4326, outSR);
}
[/i][/i][/i][/i]
文章来源:http://blog.csdn.net/esrichinacd/article/details/8095262
0 个评论
推荐内容
- ArcGIS Pro 2.4向独立server发布服务步骤
- Linux上安装ArcGIS Enterprise超详细教程——以Redhat7.2上安装ArcGIS Enterprise 10.5为例
- ArcGIS for Server 10.x 许可授权手册
- Portal for ArcGIS 10.X许可授权手册 (Windows版)
- arcgis server 无法手动删除切片
- ArcGIS for Server内置JS Viewer的离线部署和配置
- Linux上安装ArcGIS for Server超详细教程——以Redhat6.5上安装ArcGIS for Server 10.3.1为例
- 如何创建Geometry Service?
- 地图服务优化策略
相关问题
- 作为Desktop用户对数据的获取比较乏力,可能缺了哪些知识?
- 两个图层投影坐标系都一样,但就是不能叠加在一起。怎么办,求大神指点。一个是县的灾害点,一个是县的行政区划。
- 有谁知道哪里可以免费获取各省市地图数据呢,包括详细的shape文件数据
- 有栅格数据a(大数据),小数据b,怎么从a中扣掉b,得到a数据剩下的部分?栅格能裁剪取反吗?
- 用arcgis做网络分析,求解失败,为什么出现事件点未找到设施点的警告呢?
- 安装arcgis server 需要不需要安装网络服务器(如IIS和Apache)和.Net Frameworkma?
- 在windows server2008 R2 64位中安装了portal 10.5 设置好托管arcgis server站点,并用data store为托管数据库,发布数据出错
- cityengine怎么导入arcgis的shp数据,对shp数据有什么要求
- ArcGIS数据库数据逐图幅裁剪
- 高斯投影,加带号和不加带号的区别?
- 网络分析中用路构建网络数据集的问题