ArcGIS API 开发日常

1.问题:发布了feature要素图层之后,在测试其applyEdits功能时,我想在增加一个图形的时候将它的属性信息一并写入进去,结果一直报错 unable to complete operation。the geometry is not Z-aware。但是如果不添加属性信息(让它属性信息默认),则能成功添加图形。

        var attr = {"DM": dm ,"M": m };
        var polygon = new Polygon(polygonJson);
        polygon.rings = rings;  //   console.log("polygon.rings");   //  console.log(polygon.rings);
        var graphic = new Graphic( polygon , null, attr);
        // var graphic = new Graphic( polygon , null, {} );
        var add=new Add({
            "featureLayer":featureLayer,//给哪一个要素图层添加要素
            "addedGraphics":[graphic]//用于添加的要素
        });
        //执行添加函数
        add.performRedo();

 

 

 

  原因:找了很久的原因,结果很尴尬的发现我在发布Feature服务的时候,设置的属性字段格式不对应,将原本应该是longint的设置成了一个其他类型。所以碰到这种情况:将改属性字段设置为null(错误的Feature版本),它也能正确写入数据库。

attr = {"DM": mull ,"M": m };

 

  解决:重新新建要素类,在字段中选择好字段的类型!!!

2.问题:继发布成功之后,添加图斑默认填充了黄色,以至于掩盖了底层的影像图层。如何设置图斑的内部透明呢?

  原因:发布Feature时没有设置好面状要素的属性。

  解决:在Arcmap中编辑图层的面状属性,将其填充色设置为无色,将其边框颜色设置为合适颜色及磅值。重新上传发布要素即可。

依然存在的问题:需求是面有它的填充颜色,但是有较高的透明度(跟掩膜似的),边框实心颜色。这种还没找到实现方法(在只有一个面要素图层的情况下)。

3.问题:发布了一个由点构面的GP服务,调用时总你要调用两次才会提交分析服务,第一次总会在console控制台中提示esri.config.default.io.proxyUrl尚未进行设置......

   原因:查阅了这个博客比较详尽:http://www.cnblogs.com/gis-luq/p/4184038.html

在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config.defaults.io.proxyUrl 尚未设置”错误,但是我们手动绘制一个简单多边形作为输入参数则不会出现上述错误。

问题原因:

一般使用框选的时候对query.geometry,我们一般会赋予一个Extent变量,但是当我们需要用一个比如圆,或者点很多的不规则多边形的Polygon去查询时,就会出现esri.config.defaults.io.proxyUrl 尚未进行设置”错误

因为多边形(含有的point多)导致的web service的url的参数个数大于2048个,而我们这里采用的是get方式(最大的字符数为2048)不是post方式。所以我们需要一个proxy page做代理,通过代理使用post方式做查询,这样我们就不会受限于字符总数的限制了。

   解决:设置代理服务。如果使用的是vs平台,那么就需要IIS来发布服务,所以部署的代理应该是在IIS的路径下配置DotNet文件夹下的文件;我这里使用的wamp,所以在wamp的安装路径下配置PHP的文件就好。这里我的项目工程路径设置的是..../wamp/yewu1/html,所以我需要把PHP文件夹中的三个配置文件放置到html文件夹下,而不是wamp下。具体操作流程看上面贴出的博客链接

5.一个弱智问题,query查询:提示 Unable to complete operation.

   原因:查询条件没写对,所有的条件都应该用单引号,而不是双引号(Unable to complete operation.
Underlying DBMS error [ORA-00904: "420116005003JA00001": 标识符无效 ] [SYS])或者没有引号(Unable to complete operation.
Underlying DBMS error [ORA-00907: 缺失右括号 ] [SYS])。

   解决:打上 单引号!!!

6.问题:如何去掉ArcGIS map的esri标志和左上角的放大缩小

   解决:查找API,esri的map里有其对应的属性(properties)和方法(methods)。property中有logo属性,设置为FALSE即可去掉esri的标签。但并没有找到放大缩小的控制属性。到构造详细(constructor details)中继续搜寻,尝试设置slider的值为false。

 

map = new Map("mapDiv", {
                    logo: false,
                    slider: false
                });

 

 

 

 

 

所以问题解决是因为找对思路,不断尝试。虽然这是个最简单的问题。

7.问题:IIS+PHP本地开发环境配置。

在IIS服务器路径下的php文件在没有配置php的时候是不能被读取(识别)的。网上的配置教程很多,就是两步,配置IIS和配置PHP。这里在配置PHP的过程中出现了错误。按照网上教程解压,修改:

将php.ini-development改名为php.ini
 修改php.ini 查找data.timezone  修改为date.timezone = “Asia/Shanghai”(这里必须改,不然会出警告)   找到Windows Extensions开启 所需模块,如:php_curl.dll  php_mysql.dll   php_mysqli.dll  
php_xmlrpc.dll   php_curl.dll   只要去掉前面的 分号 保存就可以了
添加<模块映射>

然后我也获得了我的成功界面

然后我就开始链接oracle数据库的php测试,报错 PHP Fatal error:  Uncaught Error: Call to undefined function oci_connect()。查了很多资料没有解决掉。。。

8.问题:创建企业级地理数据库。oracle数据库下的实例升级为企业级地理数据库总是报错:必须以地理数据库管理员身份创建。

解决:1. 如果不是MySQL,用的oracle数据库,就不要在arcatolog中进行启用操作;

2.在arcmap中打开arctoolbox,找到  数据管理工具->地理数据库管理->创建企业级地理数据库,设置好用户和密码。

然后在原来数据库连接上右击,启用企业级地理数据库,此时可以成功了!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值