Arcgis Javascript动态显示折线信息窗口
Arcgis Javascript Dynamically Show infoWindow for Polylines
我正在使用ArcGIS Javascript API的web地图上工作,并且在显示折线的infoWindow时存在问题。我要做的是在执行selectFeatures后动态显示infoWindow。基本上,我把它设置在特征被选中的地方地图会缩放到那个特征的位置我还会为那个特征弹出信息窗口。我让它对点和多边形工作得很好,但我似乎不能让它对折线工作。我已经能够成功地获得信息窗口显示,但不是在所需的位置。我可以让它显示在左上角(使用map.infoWindow.show();)或在折线范围的中心(使用map.infoWindow.show(features[0].geometry. getextent (). getcenter();))。但后者通常并不指向这条线,因为它使用的是范围。我还使用了特征的路径点,并以这种方式获得中点。这是我最接近成功的一次,但是infoWindow从来没有出现在视图空间中,只显示了一半或四分之一——需要用户平移才能看到它。有人知道我怎样才能使它更好地工作在我想要的方式吗?请参阅下面的代码片段,了解我在脚本中执行此操作的区域(else语句用于折线)。
代码片段:
if (features[0].geometry.type == "point"){
map.centerAndZoom(features[0].geometry, map.getMaxZoom()+2);
var center = features[0].geometry;
map.infoWindow.setFeatures(features);
map.infoWindow.show(center);
}else if (features[0].geometry.type == "polygon"){
var lyrExtent = features[0].geometry.getExtent().expand(2.0);
var center = features[0].geometry.getCentroid();
map.setExtent(lyrExtent);
map.infoWindow.setFeatures(features);
map.infoWindow.show(center);
}else{
var lyrExtent = features[0].geometry.getExtent().expand(2.0);
var center = features[0].geometry.getExtent().getCenter();
var centerCoords = features[0].geometry.paths[0][features[0].geometry.paths[0].length/2];
var centerPt = new Point(centerCoords, map.spatialReference);
map.setExtent(lyrExtent);
map.infoWindow.setFeatures(features);
map.infoWindow.show(center);
}
据我所知,您必须编写自定义代码来重新设置范围,以便弹出框可见。您可以在Bootstrap Map源代码中看到一个示例。你可以包含这个库,并使用它来实例化你的map,并免费获得这种行为——即使你没有使用Bootstrap。
或者,您可以使用区段的expand()
方法强制它缩小某些因子。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Javascript排序的图像弹出窗口..可以't单独弹出
- 窗口大小html css
- 弹出窗口出现,然后退出
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript更新孙窗口中的表单元素
- 如何在选项卡上定义属性'的主窗口对象
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 召回窗口加载事件 - javascript
- 为什么不显示警报窗口
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- Chrome应用程序调整窗口大小保持纵横比
- 新选项卡被弹出窗口阻止程序阻止
- 如何访问UIWebView'的子窗口上下文
- 刷新父窗口后无法关闭窗口
- 自动关闭弹出窗口的Javascript
- 如何使用特定大小的浏览器窗口打开我的页面