
Web API
ArcGIS JavaScript API 加载天地图指南
Web API • 谢军 发表了文章 • 0 个评论 • 138 次浏览 • 2025-04-03 11:20
本指南将介绍如何使用 WebTileLayer 和 WMTSLayer 加载天地图,并探讨打印、暗色模式、自定义投
分享几个基于 ArcGIS JavaScript API 的动画效果示例
Web API • 谢军 发表了文章 • 0 个评论 • 175 次浏览 • 2025-03-26 17:51
1.车辆运动模拟
模拟车辆在道路上行驶的场景,实现动态行驶效果。
Demo地址:https://codepen.io/xiej/pen/XWZjObW
2.视角漫游模拟
模拟摄像机在场景中的漫游轨迹,实现飞行视角
用get请求使用发布的地图服务的identify功能时报错Invalid ordinate index,请问这可能是什么原因?
ArcGIS Pro • 许丹石 回复了问题 • 2 人关注 • 1 个回复 • 727 次浏览 • 2023-12-14 11:47
该地图服务的详细如下
后续用identify的get请求的方法进行识别,请求参数如下:
$(document).ready(function() {$('pre code').each(function(i, block) { hljs.highlightBlock( block); }); });geo
在调用API4.12的时候报错 view.then is not a function
Web API • AriaGIS 回复了问题 • 2 人关注 • 1 个回复 • 2678 次浏览 • 2019-07-29 08:48
但将引用的JSAPI换成4.4版本的就不会报错了,是更新API的时候调整了什么吗?
希望大佬赐教(抱拳)!
ArcGIS API for Javascript 4.0 没有鼠标划过事件!!!!!
Web API • mumuHouse 回复了问题 • 5 人关注 • 3 个回复 • 5285 次浏览 • 2019-06-05 09:54
ArcGIS Online Situational Awareness Widget数字显示小数位
Web API • 许丹石 回复了问题 • 2 人关注 • 1 个回复 • 3079 次浏览 • 2018-06-01 16:25
Situational Awareness Widget, 我想让数字显示小数位,但是默认的只有整数.请问该如何设置才能让widget显示出小数位呢?
附件如图
arcgis api for js 4.x 三维是不是只支持web 墨卡托的坐标系,能否支持2000投影坐标系
Web API • swaggyP 回复了问题 • 5 人关注 • 2 个回复 • 3510 次浏览 • 2018-05-31 09:36
dynamicMapServiceLayer点击空白处不想弹窗
回复许丹石 回复了问题 • 1 人关注 • 1 个回复 • 2788 次浏览 • 2018-05-21 00:00
arcgis for js 4.6 版加载 kmz 图层的问题
回复邵明升 回复了问题 • 1 人关注 • 1 个回复 • 4472 次浏览 • 2018-05-21 00:00
我在测试在网页渲染 kmllayer 时,遇到了 kml/kmz 文件发布的问题。
具体问题描述:
我自己制作了kml/kmz文件(文件本身没有问题),放在了 IIS 服务的一个目录下,通过浏览器该问放在 iis 服务器上的 kmz 文件,可以下载,将该地址传给 kmllayer 构造函数,无法在网页上渲染。
具体代码为:
var kmlUrl = 我的k
按照geometry提取graphic失败
回复许丹石 回复了问题 • 1 人关注 • 1 个回复 • 2647 次浏览 • 2018-05-21 00:00
可以对不同登陆用户,使用不同的mask图层对服务进行遮盖。解决方案如下:
1.生成mask图片
1).在ArcMap中加载要当面mask图层的面要素类;
2).在ArcMap中使用polygon to ras... 显示全部 »
可以对不同登陆用户,使用不同的mask图层对服务进行遮盖。解决方案如下:
1.生成mask图片
1).在ArcMap中加载要当面mask图层的面要素类;
2).在ArcMap中使用polygon to raster工具,将面要素类转换为栅格数据,Cellsize参数的值设置的小一点,否者生成的栅格数据单元格太大,非常粗糙;
3).在ArcMap中加载转换好的栅格数据,进行符号化,例如可以进行分级渲染,分为一个级别,整个栅格图层设置为同一种颜色;
4). 在渲染好的图层上右键,选择数据 -》 导出数据,在export raster data窗口中,勾选Use Render和Force RGB, 导出的图片格式设置为png, 如图:https://www.screencast.com/t/6s2M1qVW17o ;
5). 在ArcMap中加载png数据,右键图层,选择属性,在Extent选项卡中获取extent信息(程序中会用到此信息);
6).可以将png图片拷贝至web服务器或者应用程序目录中,以获得图片的url;
2.在JavaScript API中使用 MapImageLayer 对象调用mask图片
代码示例如下:
[code]
require( , function (Map, MapImage, MapImageLayer) {
var map = new Map(mapDiv, {
sliderOrientation: horizontal
});
var mi = new MapImage({
''extent'': {
''xmin'': 70.36501693725586,
''ymin'': 11.6401254937456,
''xmax'': 138.16777420043945,
''ymax'': 79.4428827569292,
''spatialReference'': {''wkid'': 4214}
},
''href'': http://192.168.100.117/mask.png
});
var mil = new MapImageLayer();
mil.addImage(mi);
map.addLayer(mil);
});
对于3.x版本的JavaScript API, 通过popup对象的resize(width, height)方法设置,例如:
map.infoWindow.resize(180, 75);
对于4.x版本的JavaSc... 显示全部 »
对于3.x版本的JavaScript API, 通过popup对象的resize(width, height)方法设置,例如:
map.infoWindow.resize(180, 75);
对于4.x版本的JavaScript API, 由于popup对象没有方法来设置弹出窗口的宽度和高度,需要通过css来更改。例如:
<style>
div.esri-popup__main-container{
width: 300px;
height:100px
}
</style>
监听相应事件,在回调函数中调用stopPropagation ()方法。禁止鼠标移动和鼠标滚轮缩放地图代码如下:
view.on(mouse-wheel,function(evt){
evt.s... 显示全部 »
监听相应事件,在回调函数中调用stopPropagation ()方法。禁止鼠标移动和鼠标滚轮缩放地图代码如下:
view.on(mouse-wheel,function(evt){
evt.stopPropagation ();
});
view.on(drag,function(evt){
evt.stopPropagation ();
});
对于3.x版本的JavaScript API, 由于JS中默认的esriConfig.defaults.io.timeout是1分钟,对于客户端发出去的请求,如果一分钟之后没有收到返回的信息,客户端就会报出超时的错误信息。
解... 显示全部 »
对于3.x版本的JavaScript API, 由于JS中默认的esriConfig.defaults.io.timeout是1分钟,对于客户端发出去的请求,如果一分钟之后没有收到返回的信息,客户端就会报出超时的错误信息。
解决办法是更改esriConfig.defaults.io.timeout的值(https://developers.arcgis.com/javascript/3/jsapi/esri.config-amd.html),例如更改为10分钟:
require([ esri/config], function (esriConfig) {
esriConfig.defaults.io.timeout = 600000; //600000 milliseconds
} )
对于4.x版本的JavaScript API, 也存在同样的情况。解决办法是更改request对象的timeout的值:https://developers.arcgis.com/javascript/latest/api-reference/esri-request.html
通过draw工具绘制多边形的时候,可以绘制出自相交的多边形。自相交的多边形转换成json后仍然自相交,导致使用featurelayer对象的applyedits()方法进行编辑不成功。
如果要避免,可以在画好图形之后,利用polyg... 显示全部 »
通过draw工具绘制多边形的时候,可以绘制出自相交的多边形。自相交的多边形转换成json后仍然自相交,导致使用featurelayer对象的applyedits()方法进行编辑不成功。
如果要避免,可以在画好图形之后,利用polygon对象的.isSelfIntersecting()方法判断一下是否存在自相交,参考帮助:https://developers.arcgis.com/javascript/3/jsapi/polygon-amd.html#isselfintersecting 。如果存在自相交,可以给出提醒,并通过geometryengine对象或者geometryengineasync对象的simplify方法(参考:https://developers.arcgis.com/javascript/3/jsapi/geometryservice-amd.html#simplify;https://developers.arcgis.com/javascript/3/jsapi/esri.geometry.geometryengineasync-amd.html#simplify)或者几何服务中的simplify方法(参考:https://developers.arcgis.com/javascript/3/jsapi/geometryservice-amd.html#simplify)进行简化处理,使数据在拓扑上没有错误,之后再提交请求,执行applyedits()方法进行编辑。
1.打印服务只支持前端的 ArcGISTiledMapServiceLayer ArcGISDynamicMapServiceLayer GraphicsLayer FeatureLayer 等图层http://resources.arcgis... 显示全部 »
1.打印服务只支持前端的 ArcGISTiledMapServiceLayer ArcGISDynamicMapServiceLayer GraphicsLayer FeatureLayer 等图层http://resources.arcgis.com/en/help/rest/apiref/exportwebmap_spec.html
2.esri.layers.RasterFunction只能针对影像服务。gp服务的结果为地图服务,无法使用此方法渲染。
3 showLabels可以控制显示标注以及标注字段。而修改字段的值后,标注即改变。
不使用parser.parse();而使用parser.instantiate(query(.map))。通过class注册。而不是id,则不会出现id冲突。
不使用parser.parse();而使用parser.instantiate(query(.map))。通过class注册。而不是id,则不会出现id冲突。
featureLayer的renderer为Renderer类,包含ClassBreaksRenderer , SimpleRenderer , UniqueValueRenderer。再往下的symbol才能使用PointSymbol3D。[... 显示全部 »
featureLayer的renderer为Renderer类,包含ClassBreaksRenderer , SimpleRenderer , UniqueValueRenderer。再往下的symbol才能使用PointSymbol3D。[code]renderer:{
type:simple,// new SimpleRenderer
symbol:{
type: point-3d, //new PointSymbol3D()
symbolLayers: ,
verticalOffset: {
screenLength: 400,
maxWorldLength: 200,
minWorldLength: 35
},
callout: {
type: line,
color: white,
size: 2,
border: {
color: #D13470
}
}
}
}
var view = new SceneView({
container: viewDiv,
map: scene,
zoom: 10,
center: [117.371852,36.35927]
});
points=[
{
x:13058... 显示全部 »
var view = new SceneView({
container: viewDiv,
map: scene,
zoom: 10,
center: [117.371852,36.35927]
});
points=[
{
x:13058023.490428746,
y:4133579.5625787214,
z:192.76964191813022,
h:346.03380525721093,
t:79.8122105218081
},{
x:13057885.379671251,
y:4134165.8410214735,
z:132.4544222317636,
h:344.2610631473669,
t:85.42138814060058
},{
x:13057776.810946576,
y:4134499.5952105694,
z:174.96305826120079,
h:311.2247224011606,
t:59.828916342620865
}
]
view.on(click, function(e){
goToOnline();
});
function goToOnline(){
var i=0;
var timer = setInterval(change, 2000);
function change(){
if (i< points.length){
var cc = getCamera(i);
view.goTo(cc);
i++;
console.log(cc);
}else{
clearInterval(timer);
return;
}
}
}
function getCamera(goToFlag){
var camera = view.camera.clone();
camera.heading = points[goToFlag].h;
camera.tilt = points[goToFlag].t;
camera.position.x=points[goToFlag].x;
camera.position.y=points[goToFlag].y;
camera.position.z=points[goToFlag].z;
return camera;
}
通过setInterval()实现停顿
kmlayer 默认使用了一个公网的kmservice 来处理kml文件,即kml文件需要先上传到公网,如果使用了内网地址,程序是无法正常工作的。
可将kmservice 地址设为本地的,必须要有portal,将您的kml或者kmz文件... 显示全部 »
kmlayer 默认使用了一个公网的kmservice 来处理kml文件,即kml文件需要先上传到公网,如果使用了内网地址,程序是无法正常工作的。
可将kmservice 地址设为本地的,必须要有portal,将您的kml或者kmz文件发布到portal上,然后共享给everyone,通过地址调用。
在代码中需要添加esriConfig.kmlServiceUrl,如下:
esriConfig.kmlServiceUrl = https://sms.esrichina.com/portal/sharing/kml;
var lyr = new KMLLayer({
url: https://sms.esrichina.com/portal/sharing/rest/content/items/8cc49407818d433db9d3ea3d7fb56c5a/data
});
参考https://developers.arcgis.com/javascript/3/jssamples/find_popup.html修改部分代码。
deferred.then(function(value){
... 显示全部 »
参考https://developers.arcgis.com/javascript/3/jssamples/find_popup.html修改部分代码。
deferred.then(function(value){
if(value.length > 0){
map.infoWindow.setFeatures([deferred]);
map.infoWindow.show(event.mapPoint);
}
})
需要根据各比例尺下,设定符合业务需求的容限误差像素,给tolerance属性赋值。来进行几何的识别即可。
需要根据各比例尺下,设定符合业务需求的容限误差像素,给tolerance属性赋值。来进行几何的识别即可。
ArcGIS JavaScript API 加载天地图指南
Web API • 谢军 发表了文章 • 0 个评论 • 138 次浏览 • 2025-04-03 11:20
本指南将介绍如何使用 WebTileLayer 和 WMTSLayer 加载天地图,并探讨打印、暗色模式、自定义投
用get请求使用发布的地图服务的identify功能时报错Invalid ordinate index,请问这可能是什么原因?
回复ArcGIS Pro • 许丹石 回复了问题 • 2 人关注 • 1 个回复 • 727 次浏览 • 2023-12-14 11:47
该地图服务的详细如下
后续用identify的get请求的方法进行识别,请求参数如下:
geometry: {"x":110.1077698897526,"y":20.336700330729357}
geometryType: esriGeometryPoint
在调用API4.12的时候报错 view.then is not a function
回复Web API • AriaGIS 回复了问题 • 2 人关注 • 1 个回复 • 2678 次浏览 • 2019-07-29 08:48
但将引用的JSAPI换成4.4版本的就不会报错了,是更新API的时候调整了什么吗?
希望大佬赐教(抱拳)!
请问arcgis js 3.x 跨服务跨图层点击查询怎么实现?
回复Web API • 许丹石 回复了问题 • 2 人关注 • 1 个回复 • 2207 次浏览 • 2019-03-15 10:13
ArcGIS Online Situational Awareness Widget数字显示小数位
回复Web API • 许丹石 回复了问题 • 2 人关注 • 1 个回复 • 3079 次浏览 • 2018-06-01 16:25
Situational Awareness Widget, 我想让数字显示小数位,但是默认的只有整数.请问该如何设置才能让widget显示出小数位呢?
附件如图
arcgis api for js 4.x 三维是不是只支持web 墨卡托的坐标系,能否支持2000投影坐标系
回复Web API • swaggyP 回复了问题 • 5 人关注 • 2 个回复 • 3510 次浏览 • 2018-05-31 09:36
按照geometry提取graphic失败
回复许丹石 回复了问题 • 1 人关注 • 1 个回复 • 2647 次浏览 • 2018-05-21 00:00
dynamicMapServiceLayer点击空白处不想弹窗
回复许丹石 回复了问题 • 1 人关注 • 1 个回复 • 2788 次浏览 • 2018-05-21 00:00
arcgis for js 4.6 版加载 kmz 图层的问题
回复邵明升 回复了问题 • 1 人关注 • 1 个回复 • 4472 次浏览 • 2018-05-21 00:00
我在测试在网页渲染 kmllayer 时,遇到了 kml/kmz 文件发布的问题。
具体问题描述:
我自己制作了kml/kmz文件(文件本身没有问题),放在了 IIS 服务的一个目录下,通过浏览器该问放在 iis 服务器上的 kmz 文件,可以下载,将该地址传给 kmllayer 构造函数,无法在网页上渲染。
具体代码为:
var kmlUrl = 我的k
针对不同用户显示同一服务中不同区域的信息
回复zhengjie0520 回复了问题 • 2 人关注 • 2 个回复 • 2919 次浏览 • 2018-05-15 15:04
图例div冲突导致测量控件无法使用
回复许丹石 回复了问题 • 1 人关注 • 1 个回复 • 2676 次浏览 • 2018-05-02 00:00
ArcGIS JavaScript API 加载天地图指南
Web API • 谢军 发表了文章 • 0 个评论 • 138 次浏览 • 2025-04-03 11:20
本指南将介绍如何使用 WebTileLayer 和 WMTSLayer 加载天地图,并探讨打印、暗色模式、自定义投
分享几个基于 ArcGIS JavaScript API 的动画效果示例
Web API • 谢军 发表了文章 • 0 个评论 • 175 次浏览 • 2025-03-26 17:51
1.车辆运动模拟
模拟车辆在道路上行驶的场景,实现动态行驶效果。
Demo地址:https://codepen.io/xiej/pen/XWZjObW
2.视角漫游模拟
模拟摄像机在场景中的漫游轨迹,实现飞行视角