gpt4 book ai didi

javascript - ArcGIS Javascript - 缩放以显示所有点

转载 作者:可可西里 更新时间:2023-11-01 01:58:12 26 4
gpt4 key购买 nike

我正在尝试添加一些功能,这些功能将根据查询返回的点来放大/缩小 map 。例如,假设我们放大了德克萨斯州。如果我执行查询并且服务返回位于德克萨斯州和一些位于加利福尼亚州的返回点,我希望 map 然后缩小并显示加利福尼亚州和德克萨斯州。我一直在浏览 ArcGIS JS API看看如何实现它,但我无法弄清楚要使用哪些属性和/或方法来实现它。

最佳答案

提供给 QueryTaskonComplete 回调的 FeatureSet 具有属性 features,它是一个数组图形

javascript api 提供了 esri.graphicsExtent(graphics) 函数,可以接受 Graphics 数组并计算它们的范围。计算范围后,可以使用 map.setExtent(extent) 将 map 缩放到该范围。

需要注意的是the documentation对于 esri.graphicsExtent(...) 指定“如果范围高度和宽度为 0,则返回 null。”如果返回的 Graphics 数组中只有一个点,就会发生这种情况,因此您需要检查它。

这是一个示例 QueryTask onComplete 回调,可用于将 map 缩放到查询返回的点的范围:

function onQueryComplete(returnedPointFeatureSet){
var featureSet = returnedPointFeatureSet || {};
var features = featureSet.features || [];

var extent = esri.graphicsExtent(features);
if(!extent && features.length == 1) {
// esri.getExtent returns null for a single point, so we'll build the extent by hand by subtracting/adding 1 to create x and y min/max values
var point = features[0];
extent = new esri.geometry.Extent(point.x - 1, point.y - 1, point.x + 1, point.y + 1, point.spatialReference);
}

if(extent) {
// assumes the esri map object is stored in the globally-scoped variable 'map'
map.setExtent(extent)
}
}

关于javascript - ArcGIS Javascript - 缩放以显示所有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com