第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 react-leaflet 中調用 fitBounds 和 getBounds?

如何在 react-leaflet 中調用 fitBounds 和 getBounds?

慕絲7291255 2022-05-22 15:59:27
我無法弄清楚如何在 Leaflet 地圖上調用 fitBounds()?;旧?,我試圖在地圖上顯示多個標記并相應地調整視圖(放大、縮小、飛到等)。我還看到了一些例子,當使用 Leaflet-react 時如何調用 fitBounds()?我試圖實施,但沒有奏效。這是我嘗試過的代碼。import React, { createRef, Component } from "react";import {  Map,  TileLayer,  Marker,  Popup} from "react-leaflet";import L from "leaflet";import Header from "../Layout/Header";import Card from "@material-ui/core/Card";import CardContent from "@material-ui/core/CardContent";import Typography from "@material-ui/core/Typography";import "leaflet/dist/leaflet.css";export class Mapp extends Component {  constructor(props) {    super(props);    this.state = {      map: [],      open: false,      bounds: null,      center: [35.000074, 104.999927]    };    this.mapRef = createRef();    this.groupRef = createRef();  }  toggleHiddden1() {    this.setState({      open: false    });  async componentDidMount() {    try {      await fetch(`https://coronaviva.herokuapp.com/api/1/infected/data/`, {        method: "GET",        headers: {          Accept: "application/json",          "Content-Type": "application/json",          Authorization: "Bearer F9bQK456iUpJVZJLTZsMEKhhENqnGJ"        }      })        .then(map => map.json())        .then(map => {          this.setState({            map          });        });    } catch (err) {      console.log(err);    }    let mapInst = this.refs.map.leafletElement.fitBounds;    console.log(mapInst);  // i tried this but this not working.  }  // centerUpdated(center) {  //   this.center = center;  // }  // boundsUpdated(bounds) {  //   this.bounds = bounds;  // }  render() {    const { map } = this.state;    const pointerIcon = new L.Icon({      iconUrl:        "https://icons.iconarchive.com/icons/paomedia/small-n-flat/512/map-marker-icon.png",      iconAnchor: [25, 40],      iconSize: [50, 50]    });    return (      <div>        <Header          state={this.state}          load={this.onChange}          submit={this.handleSubmit}        />
查看完整描述

1 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

您的代碼中有幾個錯誤:

  1. 你不要toggleHiddden1}. 此外,您toggleHiddden在組件中調用它。您應該為該方法使用一個名稱。

  2. 地圖實例源自
    let mapInst = this.mapRef.current.leafletElement;

    不是來自 let mapInst = this.refs.map.leafletElement;

    然后你可以打電話fitBounds()

  3. react-leaflet Map 包裝器中的 ref 應該是ref={this.mapRef}而不是ref="map"

  4. 在標記上循環(huán)時放置一個鍵。

只是使用了一個openstreet地圖圖塊url來演示演示。

編輯 要同時使用 fitBounds 和 getBounds 作為標記,您需要用 a 包裹標記循環(huán)FeatureGroup并給它一個 ref,然后執(zhí)行

let mapInst = this.mapRef.current.leafletElement;
const group = this.groupRef.current.leafletElement; //get native featureGroup instance
mapInst.fitBounds(group.getBounds());

在你的里面componentDidMount

然后你會得到想要的結果。


查看完整回答
反對 回復 2022-05-22
  • 1 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號