2018Esri开发竞赛 JavaScript开发答疑 整理(07月18日)

1
分享 2018-07-23
1. 问:调用ArcGIS API for Javascript 出现同源策略禁止怎么解决?
 
image001.jpg


答:1)从错误上看,是跨域问题。协议,端口和域名都相同,才算同源。建议使用web服务器,而不要通过本地文件系统访问应用程序。2)代码中使用了一个代理页,请把这行代码注释掉,或者改成自己的代理也,否者解决了跨域问题,下一步找不到代理页会提示404。

2. 问:在用ArcGIS server 做数据发布的时候源数据跟ArcGIS server不在一台电脑上怎么办?
答:有两种方式,第一是不注册数据源,发布服务时,使用的数据会自动拷贝到arcgis server机器上一份。这个过程是自动完成的。第二种方式是(以数据存储在文件夹中为例),在数据所在的机器上,把数据所在的目录共享出来,使arcgis server所在的机器能够通过UNC路径访问到,之后,把此文件夹注册到arcgis server站点上,然后发布服务,那么服务就会通过UNC路径读取数据。
追问:关于前面我问到的那个问题您说到UNC路径,可是那个路径是Localhost,怎么办?
答:用IP。
追问:在ArcGIS server的那台机子上通过有数据源的机子的UNC来访问有数据源的电脑?前提是将数据源的路径共享?
答:对,要把数据所在的目录进行共享,其他机器才能够访问到。
追问:需要在我的电脑上设置一个和另外一台电脑一样的ArcGIS server的电脑账户吗?
答:需要的,要指定arcigs server账户对这个文件夹有读写权限。或者不创建账户,直接指定everyone也行,但是指定everyone不够安全,最好能创建一个arcgis server账户。


3. 问:怎么用arcgis api for js做图层的多关键字查询?
答:通过query的where条件,或者通过findTask,都可以实现对图层中多字段进行查询。

4. 问:一个3.21版本里面的地理编码资源链接https://geocode.arcgis.com/arc ... erver),现在没办法打开,请问现在这个资源的正确链接是什么?
答:这个服务现在也仍然可用,但是因为不是一个免费的服务,所以直接访问服务的URL不行。
追问:现在esri的地理编码服务,如果想要精准一点的只能通过付费获取吗?
答:如果想免费使用这个服务,可以通过search widget。search widget默认使用的就是这个地理编码服务。
追问:把directions widget的源码放在webstorm中进行运行,显示的结果就是这样的。是我需要改什么地方吗,还是这个代码只能在沙盒里面运行?Directions在沙盒里的代码,不能直接拿出来用,因为是封装过的吗?

image002.jpg

 
答:1)这个在线Demo中使用了代理文件,如果要把代码拷贝到本地测试,请把其中的代理注释掉或者换成自己的代理页;2)Direction widget中使用的网络服务不是免费服务,这也是为什么示例Demo中会使用代理。如果要使用Direction widget中默认的网络分析服务,需要使用ArcGIS Online账户,使用时会消耗credits。当然,也可以将Direction widget中的网络分析服务替换成自己组织中的网络分析服务。

5. 问:如何将一个已发布(arcgis online)的featurelayer改变符号在网页上的显示方式(改成图片显示)?如何将点按属性连接起来形成线(在web上操作)?
答:1)使用图片符号。2)获取点,构建线。
追问:不知道怎么拿到每一个点并将每一个点的符号改变。
答:创建好符号以后,创建一个render,然后把这个render指定给featurelayer使用。不需要一个点一个点地符号化。

6. 问:这种跨域问题应该怎么找解决办法?

image003.jpg

 
答:设置一下你的Web服务器,使允许跨域访问。
 
感谢武汉理工大学张东同学的整理

0 个评论

要回复文章请先登录注册