本地开发公开课Q&A
Q:请问老师使用Python开发时候用的环境是什么?
答:开发环境用的是Eclipse+Python+Pydev。
Q:使用Python开发时可以脱离ArcGIS软件么?
答:可以在Eclipse环境中使用而不用在ArcGIS环境里面,但是如果调用arcpy则必须安装ArcGIS的相关软件。
Q:Python可以搭配MyEclipse进行开发么?
答:公开课中所用的开发环境是eclipse,大家都知道eclipse加上一堆的插件就可以认为是MyEclipse,所以在MyEclipse中也是可以使用Python,并且安装和使用方法跟在eclipse中是一样的。
Q:请问在ArcGIS
10.0中,arcpy有64位的包么?
答:Arcpy的64位安装包在ArcGIS
10.0版本中没有,但在ArcGIS 10.1的SP1中已经提供。
Q:Python能实现与Web应用的互动吗,比如作为一个地图切片接收器。
答:这个是完全可以的。课堂上已经为大家演示了如何通过Python调用ArcGIS
Online上的底图,此外在Esri官方论坛上也有一个用Python获取地图切片的例子可以参考,链接地址:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=65904。
Q:Add-In程序如何添加ESRI的许可?
答:Add-in程序是依赖ArcGIS桌面产品的,所以它使用的是桌面产品的许可。
Q:ArcGIS
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模块可以做到,网上有很多相关资料可供学习。
Q:AO开发需要什么环境?
答:在课程的开始部分就为大家介绍过AE和AO的区别,这里分别说下这两者开发的环境。
(1)AE开发:安装开发环境(比如VS2010,Eclipse),安装ArcGIS
Objects SDK;
(2)AO开发:安装开发环境(比如VS2010,Eclipse),安装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(“新空间参考”);
}
Q:ArcGIS
Engine 10.1 是否支持VS2012?
答:Esri官网给出的是ArcGIS Engine
10.1 支持VS2010的SP1,且经过测试的确不支持VS2012。
Q:C#和JAVA采用哪个更适合我们呢?
答:C#和JAVA都是ArcGIS
Engine所支持的开发语言,选择哪种语言是由开发者自己去选择的,通常都会选择使用自己熟悉的语言。
Q:Workspace->Document->Map->Layer->FeatureClass这个流程对吗?
答:这个流程是不对的,您可能混淆了几个概念。ArcGIS中打开数据其实是分为Workspace和FeatureClass,当然这是针对矢量数据(Workspace就是数据所在的数据库或者目录,比如MDB,SDE或者一个文件目录,FeatureClass就是这个Workspace中具体的矢量数据),要获取一个FeatureClass,首先要获取Workspace。但是,FeatureClass是不能显示的,要想显示数据库中的数据,就要将FeatureClass跟图层关联起来,而图层是位于Map中的,而在ArcGIS的文档组织中Map又是位于Document里,一个Document就是我们的一个MXD文档。
Q:如何在VB中使用ArcGIS
Engine开发?
答:官方文档中很清楚的给出ArcGIS 10.1已经不支持VB开发。
Q:SQL
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