本地开发公开课Q&A

Q:请问老师使用Python开发时候用的环境是什么?

答:开发环境用的是Eclipse+Python+Pydev

 

Q:使用Python开发时可以脱离ArcGIS软件么?

答:可以在Eclipse环境中使用而不用在ArcGIS环境里面,但是如果调用arcpy则必须安装ArcGIS的相关软件。

 

QPython可以搭配MyEclipse进行开发么?

答:公开课中所用的开发环境是eclipse,大家都知道eclipse加上一堆的插件就可以认为是MyEclipse,所以在MyEclipse中也是可以使用Python,并且安装和使用方法跟在eclipse中是一样的。

 

Q:请问在ArcGIS
10.0
中,arcpy64位的包么?

答:Arcpy64位安装包在ArcGIS
10.0
版本中没有,但在ArcGIS 10.1SP1中已经提供。

 

QPython能实现与Web应用的互动吗,比如作为一个地图切片接收器。

答:这个是完全可以的。课堂上已经为大家演示了如何通过Python调用ArcGIS
Online
上的底图,此外在Esri官方论坛上也有一个用Python获取地图切片的例子可以参考,链接地址:
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=65904

 

QAdd-In程序如何添加ESRI的许可?

答:Add-in程序是依赖ArcGIS桌面产品的,所以它使用的是桌面产品的许可。

 

QArcGIS
10.0
版本有没有Add-in Manager?在哪个位置?

答:ArcGIS 10.0版本中有Add-in
Manager
,位置在Customize菜单下。

 

Q:有ArcGIS
for Server
使用Python这方面的介绍吗?

答:ArcGIS的帮助中有非常详细的说明,链接地址:http://resources.arcgis.com/zh-CN/help/main/10.1/#/na/002z00000001000000/

 

Q:调用arcpy时,如何实现命令的多线程执行?

答:Python自身就支持多线程,我们可以对一些线程安全的操作在Thread中执行,对于线程不安全的操作,通过多进程来模拟多线程,通过Multiprocessing模块可以做到,网上有很多相关资料可供学习。

 

QAO开发需要什么环境?

答:在课程的开始部分就为大家介绍过AEAO的区别,这里分别说下这两者开发的环境。

1AE开发:安装开发环境(比如VS2010Eclipse),安装ArcGIS
Objects SDK

2AO开发:安装开发环境(比如VS2010Eclipse),安装ArcGIS
Objects SDK
,安装ArcGIS for Desktop

需要注意的是,两者的开发都需要安装ArcGIS Objects SDK,这是因为在ArcGIS
10.0
版本的时候Esri将开发包统一为一个了,但是两者开发需要的许可不一样,AE使用ArcGIS
Engine
的许可,AO使用ArcGIS for Desktop的许可。

 

Q:可实例化类既然存在,肯定是能够被创建出来的,那么它在别的类里面怎么实现呢?

答:可实例化类(有的资料称为“普通类”)就是自己不能用new关键字,而是由别的类创建或从别的类获取。在打开工作空间的时候为大家介绍过IWorkspace这个对象,它就是一个可实例化类,是由工作空间工厂创建。关于这个在别的类如何实现,则需要了解下设计模式的内容,在设计模式中有一个模式叫做工厂模式,有兴趣可以做深入了解。

 

Q:使用AO开发一个
mdb
shp文件的功能实现思路是什么?

答:如果是将mdb中的数据转成shp文件可以采用IFeatureDataConverter这个接口,如果要将整个mdb转成shp文件需要通过IWorkspace.Datasets获取符合转换条件的数据,然后通过IFeatureDataConverter接口完成。

 

Q:使用ArcGIS
Engine
开发如何定义投影?

答:定义投影用IGeoDatasetSchemaEdit接口,代码可以参见下面。

IGeoDatasetSchemaEdit
pEdit = pFtClass as
IGeoDatasetSchemaEdit
;

if (pEdit.CanAlterSpatialReference)

 { pEdit.AlterSpatialReference(“新空间参考”);
}

 

QArcGIS
Engine 10.1
是否支持VS2012

答:Esri官网给出的是ArcGIS Engine
10.1
支持VS2010SP1,且经过测试的确不支持VS2012

 

QC#JAVA采用哪个更适合我们呢?

答:C#JAVA都是ArcGIS
Engine
所支持的开发语言,选择哪种语言是由开发者自己去选择的,通常都会选择使用自己熟悉的语言。

 

QWorkspace->Document->Map->Layer->FeatureClass这个流程对吗?

答:这个流程是不对的,您可能混淆了几个概念。ArcGIS中打开数据其实是分为WorkspaceFeatureClass,当然这是针对矢量数据(Workspace就是数据所在的数据库或者目录,比如MDBSDE或者一个文件目录,FeatureClass就是这个Workspace中具体的矢量数据),要获取一个FeatureClass,首先要获取Workspace。但是,FeatureClass是不能显示的,要想显示数据库中的数据,就要将FeatureClass跟图层关联起来,而图层是位于Map中的,而在ArcGIS的文档组织中Map又是位于Document里,一个Document就是我们的一个MXD文档。

 

Q:如何在VB中使用ArcGIS
Engine
开发?

答:官方文档中很清楚的给出ArcGIS 10.1已经不支持VB开发。

 

QSQL
Server
数据库中SDE数据库里面的表和FeatureClass的关系如何理解?

答:这个其实是跟数据模型有关系,跟开发的内容关系不大。SDE是空间数据库中的一种,我们称之为企业级空间数据库,是基于Geodatabase模型将我们的空间数据存到数据库中。对于SDE来说空间数据就被存到了SQL
Server
Oracle等数据库中,要素类是含有空间数据的,我们以往将数据存到SQL Server数据库中时是以表的形式存在,当我们用了SDE之后,要素类被存到SQL
Server
数据库中,但不是一张单独的表,而是好几张表共同构成了要素类。可以打开SQL Server去看一下数据,这样就会加深理解了。

 

Q:今天的资料和源码会提供下载吗?

答:给大家准备的资料和源码已经放到ArcGIS_本地开发官方微博的微盘上了,下载地址:http://vdisk.weibo.com/s/lDeP3/1356476459,或通过Esri中国官方网站获取,下载地址:http://www.esrichina.com.cn/downloadcenter/jskc/

 

Q:听说贵公司有对外的技术方向的QQ群,我们希望有问题可以通过这种渠道跟你们沟通,能否提供QQ群?

答:如下表所示,大家可根据工作内容与兴趣爱好选择QQ群,十分欢迎加入我们进行交流。

174281419

ArcGIS API for Silverlight 

167467748

ArcGIS 4 Android 1

250106494

ArcGIS 4 Android 2 

215021408

ArcGIS 4 IOS 

29716227

3D GIS

145979146

ArcGlobe建模与开发 

224830428

CityEngine交流群

222896659

ArcGlobe三维开发群 

224119520

ArcGIS桌面制图

194439475

ArcGIS云计算

217693881

企业级GIS

48699250

ArcGIS本地开发

 

转载自:https://blog.csdn.net/arcgis_all/article/details/8474095

You may also like...