【问题标题】:React-leaflet bounds反应传单边界
【发布时间】:2016-04-11 04:09:02
【问题描述】:

现在我正在通过传递 bounds 参数来设置我的 react 传单地图的边界,如下所示:

   <div hidden={!this.props.hide && !this.props.toggle} className="map-container">

       <Leaflet.Map ref='leaflet-map' bounds={ this.getBounds()} >

       <Leaflet.TileLayer url='http://{s}.tile.osm.org/{z}/{x}/{y}.png'/>

             { this.geoResults().map(this.renderMarker) }


       </Leaflet.Map>

   </div>

问题在于,有时会在地图的最外层(在视图中)呈现标记,因此除非我拖动地图或缩小一个点,否则标记甚至不可见。我试图用缓冲区解决这个问题,或者尝试绘制边界然后使用缩放缩小一次,但似乎没有任何效果。你们有什么想法吗?

【问题讨论】:

标签: javascript dictionary reactjs leaflet react-leaflet


【解决方案1】:

解决方案

您可以使用Map 组件的boundsOptions 属性将选项传递给传单的fitBounds() 方法。在这些选项中,您可以定义 padding 例如“填充”边界。

来自react-leafletMap 文档:

boundsOptions:对象(可选):传递给 fitBounds() 方法的选项。

来自leafletfitBounds options 文档:

padding:相当于将左上角和右下角的padding设置为相同的值。

示例

所以这样的事情应该可以工作(没有实际测试):

<Leaflet.Map
  ref='leaflet-map'
  bounds={this.getBounds()}
  boundsOptions={{padding: [50, 50]}}
/>

像这样定义 Map 元素应该填充边界。调整填充值以满足您的需求。

另一种方法

您可以在getBounds() 函数中为边界添加填充。

【讨论】:

  • 很棒的答案 - 我已经到了这一部分,现在我想在地图边界的顶部添加矢量多边形,这样他们就可以看到我在边界参数中提供的确切多边形。你能在这里看看我的问题,看看你是否也知道答案吗?谢谢! stackoverflow.com/questions/38234377/…
  • 谢谢麦克斯韦。我也确实为您的其他问题提出了建议。您能否将我的答案标记为正确并考虑对其进行投票(这毕竟是 StackOverlow 游戏化的想法)。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 1970-01-01
相关资源
最近更新 更多