久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <small id='R0XoU'></small><noframes id='R0XoU'>

  • <i id='R0XoU'><tr id='R0XoU'><dt id='R0XoU'><q id='R0XoU'><span id='R0XoU'><b id='R0XoU'><form id='R0XoU'><ins id='R0XoU'></ins><ul id='R0XoU'></ul><sub id='R0XoU'></sub></form><legend id='R0XoU'></legend><bdo id='R0XoU'><pre id='R0XoU'><center id='R0XoU'></center></pre></bdo></b><th id='R0XoU'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='R0XoU'><tfoot id='R0XoU'></tfoot><dl id='R0XoU'><fieldset id='R0XoU'></fieldset></dl></div>

    1. <tfoot id='R0XoU'></tfoot>

        <legend id='R0XoU'><style id='R0XoU'><dir id='R0XoU'><q id='R0XoU'></q></dir></style></legend>

          <bdo id='R0XoU'></bdo><ul id='R0XoU'></ul>

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

        How to call fitBounds and getBounds in react-leaflet?(如何在 react-leaflet 中調用 fitBounds 和 getBounds?)

            • <legend id='xO2ZM'><style id='xO2ZM'><dir id='xO2ZM'><q id='xO2ZM'></q></dir></style></legend>

                • <bdo id='xO2ZM'></bdo><ul id='xO2ZM'></ul>
                    <tbody id='xO2ZM'></tbody>

                  <i id='xO2ZM'><tr id='xO2ZM'><dt id='xO2ZM'><q id='xO2ZM'><span id='xO2ZM'><b id='xO2ZM'><form id='xO2ZM'><ins id='xO2ZM'></ins><ul id='xO2ZM'></ul><sub id='xO2ZM'></sub></form><legend id='xO2ZM'></legend><bdo id='xO2ZM'><pre id='xO2ZM'><center id='xO2ZM'></center></pre></bdo></b><th id='xO2ZM'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='xO2ZM'><tfoot id='xO2ZM'></tfoot><dl id='xO2ZM'><fieldset id='xO2ZM'></fieldset></dl></div>
                • <small id='xO2ZM'></small><noframes id='xO2ZM'>

                  <tfoot id='xO2ZM'></tfoot>
                  本文介紹了如何在 react-leaflet 中調用 fitBounds 和 getBounds?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我不知道如何在 Leaflet 地圖上調用 fitBounds().

                  基本上,我試圖在地圖上顯示多個標記并相應地調整視圖(放大、縮小、飛到等).我還看到了一些示例

                  I cannot figure out how to call fitBounds() on the Leaflet map.

                  Basically, I am trying to display multiple markers on the map and have the view adjust accordingly (zoom in, zoom out, fly to, etc.). i also saw some example How do you call fitBounds() when using leaflet-react? and i tried to implement but it did not work. Here is my code that i tried.

                  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}
                          />
                          <Map
                            center={[51.9194, 19.1451]}
                            style={{ height: "100vh", width: "auto" }}
                            zoom={6}
                            ref="map"
                            bounceAtZoomLimits={true}
                            maxBoundsViscosity={0.95}
                            maxBounds={[
                              [-180, -90],
                              [180, 90]
                            ]}
                            className="map_map margin-zero map-padding"
                          >
                            {map.map(c => (
                              <Marker
                                position={[c.latitude, c.longitude]}
                                icon={pointerIcon}
                                onclick={this.toggleHiddden.bind(this)}
                              >
                                <Popup autoPan={false}>
                                  <Card className="carrr">
                                    {c.location === "Israel" ? (
                                      <img
                                        className="image"
                                        src="https://thehill.com/sites/default/files/styles/article_full/public/telaviv_skyline_09202018.jpg?itok=pxhk1Rtl"
                                        alt="Contemplative Reptile"
                                      />
                                    ) : (
                                      <img
                                        className="image"
                                        src="https://www.dwf.law/-/media/DWF/Images/Locations-Assets/Warsaw/Warsaw-700-x-388.ashx"
                                        alt="Contemplative Reptile"
                                      />
                                    )}
                                    <CardContent>
                                      <Typography gutterBottom variant="h5" component="h2">
                                        {c.location && <span> Place : {c.location} </span>}
                                      </Typography>
                  
                                      <h6>Address : {c.address}</h6>
                                      <p className="text-dark" style={{ marginTop: "-5px" }}>
                                        {c.info && (
                                          <span>
                                            <strong> Info</strong>: {c.info}{" "}
                                          </span>
                                        )}
                                      </p>
                  
                                      <p
                                        color="textSecondary text-secondary"
                                        component="p"
                                        className="lodl"
                                      >
                                        PlaceType : {c.place_type}
                                        <br></br>
                                        {c.start_hour && (
                                          <span>
                                            Start Hour : {c.start_hour}{" "}
                                            {c.start_hour > "12" ? "PM" : "AM"}
                                          </span>
                                        )}
                                        <br></br>
                                        {c.end_hour && (
                                          <span>
                                            End Hour : {c.end_hour}{" "}
                                            {c.end_hour > "12" ? "PM" : "AM"}
                                          </span>
                                        )}
                                      </p>
                                    </CardContent>
                                  </Card>
                                </Popup>
                              </Marker>
                            ))}
                  
                            <TileLayer
                              noWrap={true}
                              url="https://tiles.stadiamaps.com/tiles/alidade_smooth/{z}/{x}/{y}{r}.png"
                              subdomains="1234"
                              attribution='&copy; <a 
                            />
                          </Map>
                        </div>
                      );
                    }
                  }
                  
                  export default Mapp;
                  

                  解決方案

                  You have several errors in your code:

                  1. You do not close toggleHiddden1 with an }. Moreover you call it as toggleHiddden in the component. You should use one name for the method.

                  2. the map instance is derived from
                    let mapInst = this.mapRef.current.leafletElement;

                    not from let mapInst = this.refs.map.leafletElement;

                    Then you can call fitBounds()

                  3. The ref in the react-leaflet Map wrpapper should be ref={this.mapRef} and not ref="map"

                  4. Place a key when you looping over the markers.

                  Just used an openstreet map tiles url to be able to demonstrate the demo.

                  Edit To use both fitBounds and getBounds at the same time for a marker you need to wrap your markers loop with a FeatureGroup and give it a ref, then do

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

                  inside your componentDidMount

                  and then you will get the desired result.

                  Demo

                  這篇關于如何在 react-leaflet 中調用 fitBounds 和 getBounds?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Check if a polygon point is inside another in leaflet(檢查一個多邊形點是否在傳單中的另一個內部)
                  Changing leaflet markercluster icon color, inheriting the rest of the default CSS properties(更改傳單標記群集圖標顏色,繼承其余默認 CSS 屬性)
                  Trigger click on leaflet marker(觸發點擊傳單標記)
                  How can I change the default loading tile color in LeafletJS?(如何更改 LeafletJS 中的默認加載磁貼顏色?)
                  Add external geojson to leaflet layer(將外部geojson添加到傳單層)
                  Adding Leaflet layer control to sidebar(將 Leaflet 圖層控件添加到側邊欄)

                    1. <small id='AeeXS'></small><noframes id='AeeXS'>

                        1. <i id='AeeXS'><tr id='AeeXS'><dt id='AeeXS'><q id='AeeXS'><span id='AeeXS'><b id='AeeXS'><form id='AeeXS'><ins id='AeeXS'></ins><ul id='AeeXS'></ul><sub id='AeeXS'></sub></form><legend id='AeeXS'></legend><bdo id='AeeXS'><pre id='AeeXS'><center id='AeeXS'></center></pre></bdo></b><th id='AeeXS'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='AeeXS'><tfoot id='AeeXS'></tfoot><dl id='AeeXS'><fieldset id='AeeXS'></fieldset></dl></div>

                            <tbody id='AeeXS'></tbody>
                          <tfoot id='AeeXS'></tfoot>
                          • <bdo id='AeeXS'></bdo><ul id='AeeXS'></ul>
                          • <legend id='AeeXS'><style id='AeeXS'><dir id='AeeXS'><q id='AeeXS'></q></dir></style></legend>
                            主站蜘蛛池模板: 国产精品99久久久久久久久久久久 | 亚洲视频一区在线 | 综合久久色 | 国产区在线看 | 国产精品美女久久久久久不卡 | 91美女视频| 成人欧美日韩一区二区三区 | www.日韩| 亚洲在线视频 | 91精品久久久久久久久 | 最新中文字幕在线播放 | 91久久国产综合久久 | 久久综合影院 | 国产福利91精品 | 依人成人 | 国产亚洲一区二区三区在线 | 精品一二 | 在线观看免费av网 | 久久精品一区二区 | 中文字幕日韩欧美一区二区三区 | 日韩精品久久一区二区三区 | a级片在线观看 | 亚洲视频一区在线播放 | 99久久亚洲| 日本 欧美 三级 高清 视频 | 国产一级成人 | 国产伦精品一区二区三区高清 | 亚洲 精品 综合 精品 自拍 | 在线免费观看视频你懂的 | 青草青草久热精品视频在线观看 | 老司机精品福利视频 | 亚洲视频免费一区 | 欧美在线一区二区三区 | 天天色天天色 | 久久久久成人精品亚洲国产 | 日韩中文欧美 | 国产91视频播放 | 亚洲精品第一 | 草久视频| 亚洲精品久久久蜜桃 | 粉嫩一区二区三区四区公司1 |