Die PC-Version von React wurde für die Verwendung von Amap umgestaltet. Nach einer Suche nach Informationen bin ich auf ein Map-Plugin namens react-amap gestoßen, das für React gekapselt ist. Offizielle Website: https://elemefe.github.io/react-amap/components/map. Wenn Sie interessiert sind, können Sie sich die API ansehen. react-amap-installation1. Verwenden Sie zur Installation npm, aktuell Version 1.2.8: cnpm ich reagiere-amap 2. Verwenden Sie SDN direkt zur Einführung <script src="https://unpkg.com/[email protected]/dist/react-amap.min.js"></script> React-amap-Nutzung importiere React, {Component} von 'react' importiere {Map,Marker} aus 'react-amap' const mapKey = '1234567809843asadasd' //Sie müssen es auf der offiziellen Website von Amap beantragen. class Address extends Component { Konstruktor (Requisiten) { super (Requisiten) dieser.Zustand = { } } machen(){ zurückkehren ( <div Stil={{Breite: '100%', Höhe: '400px'}}> <Karte amapkey={mapKey} zoom={15}></Karte> </div> ) } } Standardadresse exportieren In diesem Fall wird eine einfache Karte initialisiert. Im eigentlichen Entwicklungsprozess werden Sie mit komplexeren Nutzungsszenarien konfrontiert. Sie müssen beispielsweise Punkte markieren, die Karte vergrößern und verkleinern, den aktuellen Standort lokalisieren, nach Standorten suchen usw. Die Anforderungen sind in etwa wie in der folgenden Abbildung dargestellt: In diesem Fall ist es notwendig, die Konzepte von Plug-Ins und Komponenten einzuführen. <Kartenplugins={["ToolBar", 'Scale']}></Map> Markierungskartenmarkierung <Karte> <Markierungsposition={['lng','lat']}></Markierung> </Karte> InfoWindow-Formularkomponente <Karte> <InfoFenster Position = {dieser.Zustand.Position} sichtbar = {dieser.Zustand.sichtbar} istCustom={false} Inhalt={html} Größe={diese.Zustandsgröße} Offset = {dieser.Zustand.Offset} Ereignisse={this.windowEvents} /> </Karte> Das erstellte Ereignis wird verwendet, um erweiterte Nutzungsanforderungen zu erfüllen. Es wird aufgerufen, nachdem die native Amap-Instanz erfolgreich erstellt wurde. Der Parameter ist die erstellte Instanz. Nachdem Sie die Instanz erhalten haben, können Sie die Instanz gemäß der nativen Amap-Methode betreiben: const Ereignisse = { erstellt: (Instanz) => { console.log(instance.getZoom())}, click: () => { console.log('Sie haben auf die Karte geklickt') } } <Kartenereignisse={Ereignisse} /> Implementieren Sie einen komplexeren Code für die Adresssuche, Adressmarkierung und umgekehrte Geografieanalyse: importiere React, {Komponente} von 'react' importiere { Modal, Input} von 'antd' Stile aus „./index.scss“ importieren Klassennamen aus „Klassennamen“ importieren importiere { Map, Marker, InfoWindow} aus 'react-amap' Marker aus „SRC/statics/images/signin/marker2.png“ importieren const mapKey = "42c177c66c03437400aa9560dad5451e" Klasse Adresse erweitert Komponente { Konstruktor (Requisiten) { super(Requisiten) dieser.Zustand = { signAddrList:{ Name:'', Adresse:'', Längengrad: 0, Breitengrad: 0 }, Geocoder:'', Suchinhalt:'', isChose:false } } //Daten ändern allgemeine Methode (einzelne Ebene) changeData = (Wert, Schlüssel) => { let { signAddrList } = dieser.Zustand signAddrList[Schlüssel] = Wert dies.setState({ signAddrList:signAddrList }) } placeSearch = (e) => { dies.setState({searchContent:e}) } suchOrt = (e) => { console.log(1234,e) } componentDidMount() { } rendern() { let { changeModal, saveAddressDetail} = this.props let { signAddrList } = dieser.Zustand const wähleAdresse = { erstellt:(e) => { lass auto Geocoder Fenster.AMap.plugin('AMap.Autocomplete',() => { auto = neues Fenster.AMap.Autocomplete({input:'tipinput'}); }) Fenster.AMap.plugin(["AMap.Geocoder"],Funktion(){ Geocoder = neue AMap.Geocoder({ radius:1000, //Mit den bekannten Koordinaten als Mittelpunkt und radius als Radius werden die Sonderziele und Straßeninformationen innerhalb des Bereichs zurückgegeben. Erweiterungen: „alle“ //Gibt die Adressbeschreibung und die Sonderziele und Straßeninformationen in der Nähe zurück. Der Standardwert ist „Basis“. }); }); Fenster.AMap.plugin('AMap.PlaceSearch',() => { let place = neues Fenster.AMap.PlaceSearch({}) lass _dies = dies window.AMap.event.addListener(auto,"select",(e) => { Ort.Suche(e.poi.name) geocoder.getAddress(e.poi.location,Funktion (Status,Ergebnis) { wenn (Status === 'abgeschlossen'&&Ergebnis.regeocode) { let Adresse = Ergebnis.regeocode.formattedAddress; let data = result.regeocode.addressComponent let name = data.township + data.street + data.streetNumber _this.changeData(Adresse,'Adresse') _this.changeData(Name,'Name') _this.changeData(e.poi.location.lng,'Längengrad') _this.changeData(e.poi.location.lat,'Breitengrad') _this.setState({isChose:true}) } }) }) }) }, klick:(e) => { const _this = dies var Geocoder var infoWindow var lnglatXY = neue AMap.LngLat(e.lnglat.lng,e.lnglat.lat); let content = '<div>Positionierung…</div>' Fenster.AMap.plugin(["AMap.Geocoder"],Funktion(){ Geocoder = neue AMap.Geocoder({ radius:1000, //Mit den bekannten Koordinaten als Mittelpunkt und radius als Radius werden die Sonderziele und Straßeninformationen innerhalb des Bereichs zurückgegeben. Erweiterungen: „alle“ //Gibt die Adressbeschreibung und die Sonderziele und Straßeninformationen in der Nähe zurück. Der Standardwert ist „Basis“. }); geocoder.getAddress(e.lnglat,Funktion (Status,Ergebnis) { wenn (Status === 'abgeschlossen'&&Ergebnis.regeocode) { let Adresse = Ergebnis.regeocode.formattedAddress; let data = result.regeocode.addressComponent let name = data.township + data.street + data.streetNumber _this.changeData(Adresse,'Adresse') _this.changeData(Name,'Name') _this.changeData(e.lnglat.lng,'Längengrad') _this.changeData(e.lnglat.lat,'Breitengrad') _this.setState({isChose:true}) } }) }); } } zurückkehren ( <div> <Modal sichtbar={true} Titel="Bürostandort" zentriert={true} beiAbbrechen={() => changeModal('addressStatus',0)} onOk = {() => Adressdetail speichern(signAddrList)} Breite={700}> <div Klassenname={styles.serach}> <Eingabe-ID="tipinput" Klassenname={styles.searchContent} beiÄnderung={(e) => diese.Ortssuche(e.Ziel.Wert)} onKeyDown={(e) => dieser.Suchplatz(e)} /> <i className={classname(styles.serachIcon,"iconfont icon-weibiaoti106")}></i> </div> <div className={styles.mapContainer} id="Inhalt" > { dieser.Zustand.istAusgewählt ? <Map amapkey={mapKey} plugins={["ToolBar", 'Skalieren']} Ereignisse={Adresse auswählen} Zentrum = { [ signAddrList.Länge, signAddrList.Breitengrad] } zoom={15}> <Markierungsposition={[signAddrList.longitude,signAddrList.latitude]}/> </Map> : <Map amapkey={mapKey} plugins={["ToolBar", 'Skalieren']} Ereignisse={Adresse auswählen} zoom={15}> <Markierungsposition={[signAddrList.longitude,signAddrList.latitude]}/> </Karte> } </div> <div className="mar-t-20">Detaillierte Adresse: {signAddrList.addr} </div> </Modal> </div> ) } } Standardadresse exportieren Dies ist das Ende dieses Artikels über das Implementierungsbeispiel zur Verwendung von Amap in React (react-amap). Weitere relevante Inhalte zu React Amap finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Nginx-Reverseproxy und Lastausgleichspraxis
>>: MySQL-Grundanweisungen zum Hinzufügen, Löschen, Ändern und Abfragen
1. Umgebung und Vorbereitung 1. Ubuntu 14.04 2.Do...
Ein einfacher Linux-Ratespiel-Quellcode Spielrege...
Inhaltsverzeichnis Sonderzeichen in URLs Escapeze...
(Win7-System) Tutorial zur Installation einer vir...
Ich bin auf die Anforderung gestoßen, Tastenkombi...
Da ich MySQL installieren muss, zeichne ich den I...
Vorwort Bash verfügt über viele wichtige integrie...
Die Haupttextseite von TW hatte früher eine Breite...
Vorwort PIPE, übersetzt als Pipeline. Angular Pip...
Wirkungsdiagramm: Gesamtwirkung: Video wird gelad...
In diesem Artikel wird hauptsächlich erläutert, w...
Inhaltsverzeichnis Über die MariaDB-Datenbank unt...
In diesem Artikel wird der spezifische Code zur V...
Ereignisschleife in js Da JavaScript ein Single-T...
Das MySQL-Slow-Log ist ein Informationstyp, auf d...