ArcGIS API for JavaScript - 如何在地图边缘停止信息窗口裁剪
ArcGIS API for JavaScript - How to stop infoWindow cropping at map edge?
我正在使用 esri 的 ArcGIS API for JavaScript 3.6 版本,并且有一个小地图(桌面上的 ~400px 正方形),每当用户将鼠标悬停在要素上时,它都会显示一个信息窗口弹出窗口。
如果信息窗口显示在地图边缘附近,则信息窗口将被裁剪以适合地图边界。我想让信息窗口内容溢出并完全可见,有没有办法在 ArcGIS 框架之外滚动我自己的弹出窗口?
这是信息窗口被裁剪的图片(对不起,我没有足够的代表来发布图像):
信息窗口被处理
编辑:
我尝试像这样设置信息窗口的 domNode:
var myDiv = some_div_far_awary;
var infoWindow = new esri.dijit.InfoWindow({}, myDiv);
infoWindow.startup();
var map = new esri.Map("my-map-div", {
// Other configs...
infoWindow: infoWindow
});
希望如果some_div_far_away
在地图div 之外并且绝对定位,它可以显示在地图上,这只是使用 overflow:hidden
来包含弹出窗口。不过运气不好。
好吧,我不确定为什么我们需要添加具有一些预定义样式的信息窗口容器。正如您在评论"范围更改的昂贵计算"中提到的,所以我不建议您更改地图范围,我认为您可以根据您的窗口大小设置信息窗口(以最大合适大小重新调整信息窗口的大小)。
下面是示例代码:
var infoWindow = new esri.dijit.InfoWindow({}, dojo.create("div"));
infoWindow.startup();
var map = new esri.Map("map", {
// Other configs...
infoWindow: infoWindow
});
要重新调整信息窗口,您可以使用:
map.infoWindow.resize(100,100); // resize(width,height)
我想在这里建议的另一种方法是,如果您认为这是一个正确显示信息窗口的小地方,为什么不使用移动弹出窗口......他们真的很酷。
下面是代码:
var popup = new esri.dijit.PopupMobile(null, dojo.create("div"));
var map = new Map("map", {
basemap: "gray",
center: [-98.57, 39.82],
zoom: 4,
infoWindow: popup
});
随意拍摄您的查询..
希望这对您有所帮助:)
因此,信息模板无意避免这种情况,因为相对于坐标有一个浮动面板,导致错误,因为您无法确定哪些点引用浮动面板。
您可以在地图左侧的另一个div 中显示要素的字段,也可以使用 map.centerAt(mappoint)
或 map.centerAndZoom(mappoint,level)
这样您的信息模板就不会被裁剪,因为您将集中信息窗口。
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 下拉菜单在菜单按钮的边缘闪闪发光
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何通过解析类信息来使用jQuery创建类
- 如何在图片和边缘之间居中设置标签
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- ng在更新$scope后重复不更新信息
- 谷歌地图点击潜水触发信息窗口
- 如何使线条的边缘像素保持半透明
- Cytoscape中反映重量的边缘
- 根据CHECKBOX输入值动态更新DIV信息
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- ArcGIS API for JavaScript - 如何在地图边缘停止信息窗口裁剪