2 回答
TA贡献1802条经验 获得超5个赞
转变:
this.view = new MapView({
container: this.$el,
map: map,
center: [-118,34], ///USE PROPS HERE FOR NEW CENTER
zoom: 8
});
至
this.view = new MapView({
container: this.$el,
map: map });
this.view.center.longitude = -118;
this.view.center.latitude = 34;
this.view.zoom = 8;
Tao 的另一个答案在 .goTo({center: []}) 方法调用中具有向后的经度/纬度,这就是它走向海洋的原因:https ://developers.arcgis.com/javascript/latest/api -reference/esri-views-MapView.html#goTo
TA贡献1874条经验 获得超12个赞
这是可行的:
https://codesandbox.io/s/frosty-glitter-39wpe?file=/src/App.vue
我是从头开始制作的,只从您那里获取了一小部分内容,并将它们与 ArcGIS 中的一些示例(我根本不熟悉)结合起来。
需要注意的一件事是,它.goTo({center: [lat, long]})没有按预期工作:它一直集中在某个海洋的中间。
然后我从导入 Pointesri并通过centeras new Point(long, lat),这似乎产生了预期的结果。由于它有效,我没有进一步研究,但我想如果没有转换它应该是可行的。您可能需要传入坐标系或类似的东西。
据我所知,您的示例中有什么问题是您尝试将数据从父级传递给子级的方式。您希望this.$refs.map成为 Vue 实例,但事实并非如此。它是一个 DOM 元素。它基本上是 Vue 实例的$el. 从父实例访问子方法并不是那么简单。另一件需要注意的事情是,即使您在示例中绑定centerX了centerYchild,但您似乎从未使用过它们(但我想这只是您尝试使用 props 时的遗留问题!?)。
无论如何,在我的示例中,我选择简单地更新孩子的 coords 道具,同时使用watchfn 来处理重新居中。
添加回答
举报
