如果ArcGIS Online JavaScript最接近设施功能未返回数据,可能有以下解决方法:
检查服务链接:确保你使用的设施服务链接是正确的,并且服务已经发布和可访问。你可以在浏览器中尝试直接打开服务链接来确认服务是否可用。
检查输入参数:确保你在调用最接近设施功能时提供了正确的输入参数。例如,你需要提供设施图层和目标位置点的坐标。确保这些参数的格式正确,并且坐标值在合理的范围内。
检查权限和访问:如果你的应用程序需要访问ArcGIS Online服务或特定的设施图层,确保你拥有足够的权限来访问这些资源。你可以检查你的ArcGIS Online帐户设置或与管理员联系以获取更多信息。
检查网络连接:确保你的应用程序可以与ArcGIS Online建立有效的网络连接。检查你的网络连接是否正常,并尝试刷新应用程序以查看是否可以获取数据。
以下是一个使用ArcGIS Online JavaScript API的最接近设施功能的示例代码:
require([
"esri/tasks/ClosestFacilityTask",
"esri/tasks/support/ClosestFacilityParameters",
"esri/tasks/support/FeatureSet",
"esri/Graphic",
"esri/Map",
"esri/views/MapView"
], function(
ClosestFacilityTask,
ClosestFacilityParameters,
FeatureSet,
Graphic,
Map,
MapView
) {
var closestFacilityTask = new ClosestFacilityTask({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/NetworkAnalysis/SanDiego/NAServer/ClosestFacility"
});
var closestFacilityParams = new ClosestFacilityParameters({
facilities: new FeatureSet({
features: [new Graphic({
geometry: {
type: "point",
longitude: -117.1956,
latitude: 34.0572
}
})]
}),
incidents: new FeatureSet({
features: [new Graphic({
geometry: {
type: "point",
longitude: -117.1915,
latitude: 34.0576
}
})]
}),
returnRoutes: false
});
closestFacilityTask.solve(closestFacilityParams)
.then(function(result) {
console.log(result);
})
.catch(function(error) {
console.error(error);
});
var map = new Map({
basemap: "streets"
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [-117.1956, 34.0572],
zoom: 12
});
});
在这个示例中,我们使用了ArcGIS Online提供的一个示例最接近设施服务,并提供了一个设施点和一个目标点进行查询。你可以根据自己的需求修改以上代码来适应你的应用程序。