【问题标题】:Arcgis Javascript Dynamically Show infoWindow for PolylinesArcgis Javascript 动态显示折线的 infoWindow
【发布时间】:2015-11-13 07:02:39
【问题描述】:

我正在使用 ArcGIS Javascript API 制作 web 地图,但在显示折线的 infoWindow 时遇到问题。我要做的是在执行 selectFeatures 后动态显示 infoWindow。基本上,我在选择功能的地方设置了它,地图缩放到该功能位置,我为该功能弹出了 infoWindow。我让它适用于点和多边形,但我似乎无法让它适用于折线。我已经能够成功地让 infoWindow 出现但不在所需的位置。我可以让它显示在左上角(使用 map.infoWindow.show();)或折线范围的中心(使用 map.infoWindow.show(features[0].geometry.getExtent( ).getCenter();)。但是这两者中的后者通常实际上并不指向线,并且由于它使用范围而处于偏僻的位置。我还使用了特征的路径点并获得了中点方式。这是我最接近成功的方式,但是 infoWindow 从未出现在视图空间中,并且会显示一半或四分之一 - 需要用户平移才能看到它。有谁知道我该如何解决这个问题以我想要的方式更好地工作?请参阅下面的代码 sn-p,了解我在脚本中执行此操作的区域(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); 
}   

【问题讨论】:

    标签: javascript gis arcgis esri arcgis-js-api


    【解决方案1】:

    据我所知,您必须编写自定义代码来重新设置范围,以便弹出窗口可见。你可以看到an example in the Bootstrap Map source code。您可能可以包含该库并使用它来实例化您的地图并免费获得该行为 - 即使您没有使用 Bootstrap。

    或者,您可以使用extent's expand() method 强制它缩小某些因素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多