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. Was ist Master-Slave-Replikation? Mithilfe der...
MySql-Batch-Insert-Optimierung. Beispiel für SQL-...
Dieser Artikel zeichnet das Installations-Grafik-...
Aus verschiedenen Gründen müssen Sie manchmal den...
Inhaltsverzeichnis Mischen Mixin-Hinweis (doppelt...
In diesem Artikel wird der spezifische Code des W...
>1 Starten Sie die Datenbank Geben Sie im cmd-...
Was ist JSX JSX ist eine Syntaxerweiterung von Ja...
Inhaltsverzeichnis Hintergrund Lösung Neue Fragen...
1. Hintergrund 1. Stellen Sie kurz den Shared Sto...
Inhaltsverzeichnis 1. Was ist Javascript? 2. Was ...
Detaillierte Erklärung zum Ersetzen in ein Beispi...
Inhaltsverzeichnis 1. Datenbankübersicht 1.1 Entw...
1. Konzeptanalyse 1: UE User Experience <br /&...
Sie können den folgenden Befehl verwenden: Docker...