ArcGISEngine实现图层输出kml

原创 2013年12月06日 09:56:19

ArcGIS的转换工具(ConversionTools)提供了将图层输出到kml的接口LayerToKML

这个方法被封装在ESRI.ArcGIS.ConversionTools

    LayerToKML接口的输入参数layer接收两种类型的参数:本地磁盘的图层文件(*.lyr)、内存中的图层。

n  将本地磁盘图层文件(*.lyr)输出kml

// LayerToKML接口输出kml

Geoprocessor pGeoProcessor = newGeoprocessor();

   ESRI.ArcGIS.ConversionTools.LayerToKML pLayerToKML = newESRI.ArcGIS.ConversionTools.LayerToKML();

   pLayerToKML.layer = @"D:\slayer.lyr";

   pLayerToKML.out_kmz_file = "C:\\pkm.kmz";

   pLayerToKML.layer_output_scale = 10000.0;

   pGeoProcessor.OverwriteOutput = true;

   IGeoProcessorResult resultGeo =

           (IGeoProcessorResult)pGeoProcessor.Execute(pLayerToKML, null);

   if(resultGeo.Status == esriJobStatus.esriJobSucceeded)

                    MessageBox.Show("执行成功!", "输出KML", MessageBoxButtons.OK, MessageBoxIcon.Information);

   else

                    MessageBox.Show("执行Error","输出KML",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

n  将图层选择集输出kml

IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(0) asIFeatureLayer;

//设置空间查询范围条件

ISpatialFilter pQueryFilter = newSpatialFilterClass();

pQueryFilter.Geometry =pPoly;

pQueryFilter.SpatialRel= esriSpatialRelEnum.esriSpatialRelIntersects;

//生成图层在此范围内的选择

IFeatureSelection pFeatureSele = pFeatureLayer asIFeatureSelection;

pFeatureSele.SelectFeatures(pQueryFilter,esriSelectionResultEnum.esriSelectionResultNew,false);

//IFeatureLayerDefinition接口在当前将图层选择集基础上创建新的图层

IFeatureLayerDefinition2 pFLayerDef = pFeatureLayer asIFeatureLayerDefinition2;

IFeatureLayer pNewLyr = pFLayerDef.CreateSelectionLayer("uuu", true, null, null);

// LayerToKML接口输出kml

ESRI.ArcGIS.Geoprocessor.Geoprocessor pGeoProcessor = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();

    ESRI.ArcGIS.ConversionTools.LayerToKML pLayerToKML = new ESRI.ArcGIS.ConversionTools.LayerToKML();

     pLayerToKML.layer= pNewLyr;

    pLayerToKML.out_kmz_file ="C:\\NewKML.kmz" ;

    pLayerToKML.layer_output_scale = 10000.0;

    pGeoProcessor.OverwriteOutput = true;

     IGeoProcessorResult resultGeo =

                    (IGeoProcessorResult)pGeoProcessor.Execute(pLayerToKML,null);

     if (resultGeo.Status == esriJobStatus.esriJobSucceeded)

                    MessageBox.Show("执行成功!", "输出KML",MessageBoxButtons.OK, MessageBoxIcon.Information);

     else

                    MessageBox.Show("执行Error","输出KML", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

arcgis engine中图层的datasource访问与修改相关

当图层可以正常访问时,可以通过如下方式得到图层的数据源路径IFeature pFeatureLayer = ( IFeatureLayer ) pLayer;IFeature fc = ( IFeat...
  • rrrrssss00
  • rrrrssss00
  • 2008年11月07日 09:55
  • 2874

ArcGIS For JavaScript API Add KML Layer(添加KML层)————(十八)

描述:此示例演示如何添加一个KML文件作为一个层到ArcGIS API JavaScript应用程序。添加KML文件(KML或KMZ)很简单,要求有关API模块: dojo.require("esr...
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2013年01月11日 13:53
  • 3034

将mapinfo路测、话统图层导入google earth的方法

   本文用图示的方法详细列出了将mapinfo路测、话统图层导入google earth的方法。mapinfo 导入 google earth      用ADA_CDMATool工具的话统数据...
  • dengta_snowwhite
  • dengta_snowwhite
  • 2010年10月29日 17:17
  • 8934

Java生成kml文件

一个kml文件其实就是一个xml文件加上一个png图标文件压缩而成,我们要生成kml,思路就很简单了: 1. 生成xml文件,将坐标信息写入到此xml,但是在输出时要将扩展名改为kml; 2. 找...
  • hnyzwtf
  • hnyzwtf
  • 2016年05月19日 14:46
  • 2288

C# arcgis AE/AO ITopologicalOperator 中Intersect 完成裁剪功能

ITopologicalOperator完成裁剪功能,该方法同样适用于文件类型的裁剪图层,也适用于鼠标绘制实现裁剪。                   IGeometry output...
  • Prince999999
  • Prince999999
  • 2018年02月01日 14:10
  • 13

如何将dwg转换为kml

利用arcgis将dwg文件转换为kml,先将dwg文件转换为shp文件,再将shp文件转换为kml文件,中间一步非常关键,就是设置投影。 设置投影在data management tools中,p...
  • u010202270
  • u010202270
  • 2017年07月11日 17:56
  • 1011

使用OpenStreetMap下载kml格式矢量图层数据

在OpenStreetMap官网直接利用导出功能可以下载感兴趣区域的OSM格式的数据。如何从OSM数据导出我们所需要的道路、水系等矢量图层呢,可以使用FME软件。 FME软件可以在官网下载,可以下载最...
  • qq_31996043
  • qq_31996043
  • 2016年12月27日 16:14
  • 409

C#+ArcGIS Engine 中创建Shp点图层

if (lblFilePath.Text.Trim() == "")//         '检查保存路径不为空                 {                     Mess...
  • zkcharge
  • zkcharge
  • 2013年03月16日 10:40
  • 2750

arcgis engine中图层与数据表之间的join操作

在进行join之前,请确认数据库可以连接          try            {                //使用oledb连接数据库,连接到sys.基本信息表           ...
  • rrrrssss00
  • rrrrssss00
  • 2008年11月07日 10:03
  • 3383

用静态KML脚本在GoogleEarth上实现动态效果

项目遇到这样蛋疼的问题。
  • simon_uestc
  • simon_uestc
  • 2014年04月18日 22:04
  • 2668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGISEngine实现图层输出kml
举报原因:
原因补充:

(最多只允许输入30个字)