2 回答

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊
轉(zhuǎn)變:
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: []}) 方法調(diào)用中具有向后的經(jīng)度/緯度,這就是它走向海洋的原因:https ://developers.arcgis.com/javascript/latest/api -reference/esri-views-MapView.html#goTo

TA貢獻(xiàn)1874條經(jīng)驗 獲得超12個贊
這是可行的:
https://codesandbox.io/s/frosty-glitter-39wpe?file=/src/App.vue
我是從頭開始制作的,只從您那里獲取了一小部分內(nèi)容,并將它們與 ArcGIS 中的一些示例(我根本不熟悉)結(jié)合起來。
需要注意的一件事是,它.goTo({center: [lat, long]})
沒有按預(yù)期工作:它一直集中在某個海洋的中間。
然后我從導(dǎo)入 Pointesri
并通過center
as new Point(long, lat)
,這似乎產(chǎn)生了預(yù)期的結(jié)果。由于它有效,我沒有進(jìn)一步研究,但我想如果沒有轉(zhuǎn)換它應(yīng)該是可行的。您可能需要傳入坐標(biāo)系或類似的東西。
據(jù)我所知,您的示例中有什么問題是您嘗試將數(shù)據(jù)從父級傳遞給子級的方式。您希望this.$refs.map
成為 Vue 實例,但事實并非如此。它是一個 DOM 元素。它基本上是 Vue 實例的$el
. 從父實例訪問子方法并不是那么簡單。另一件需要注意的事情是,即使您在示例中綁定centerX
了centerY
child,但您似乎從未使用過它們(但我想這只是您嘗試使用 props 時的遺留問題!?)。
無論如何,在我的示例中,我選擇簡單地更新孩子的 coords 道具,同時使用watch
fn 來處理重新居中。
添加回答
舉報