【问题标题】:How to access arcgis map via components?如何通过组件访问arcgis map?
【发布时间】:2022-11-29 10:28:48
【问题描述】:

下面的代码直接取自 arcgis,通过对如何显示地图做出反应。

如果我想说,放大一组坐标,但它的代码是在另一个组件中设置的,我怎样才能让那个组件在这个组件中与地图对话?

import Map from '@arcgis/core/Map';
import MapView from '@arcgis/core/views/MapView';

const map = new Map({
  basemap: "topo-vector"
});

const view = new MapView({
  container: "viewDiv",
  map: map
});

【问题讨论】:

  • 检查这个 post from ESRI,还有 this repo 一个反应示例,​​它可能会对你有所帮助。
  • @cabesuon 不幸的是,这篇文章只展示了如何在 React 应用程序中创建一个简单的地图,而不是如何从其组件外部控制地图

标签: reactjs arcgis arcgis-js-api


【解决方案1】:

这可能不是实现此目的的推荐或最佳方法,但我成功地将 view 对象从地图组件传递回父组件,然后将其保存到父组件的状态。

// in App.js
saveViewToState(view){
  this.setState({view: view})
}

<MapComponent saveViewToState={this.saveViewToState}/>

// in MapComponent.js
let view = new View()
this.props.saveViewToState(view)

然后我能够与来自父对象的view 对象进行交互:

// in App.js
this.state.view.extent = {xmin: 1, ymin: 1, xmax: 2, ymax: 2}

这并不完美(出于某种原因我不能调用view.goTo,但view.extent可以)。我很想知道是否有更好的方法来实现这一目标。

【讨论】:

    【解决方案2】:

    仍在寻找这个问题的明确答案。 还没有找到将地图/视图创建和添加图层分离到不同组件中的示例。

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2021-10-27
      • 1970-01-01
      • 2013-12-12
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多