当前位置: 首页 > 面试题库 >

在google-map-react上动态添加标记

卢承弼
2023-03-14
问题内容

我不想要做的是在地图上显示从某些移动设备上选择的位置。有关位置的数据在那里。

我这里需要根据从服务器接收到的数据在地图上添加标记。

假设我已经将位置数据 ({Lat,Lang}) 设置为 状态标记, 然后如何添加它以显示在地图中。

我的地图代码如下!

import React, { Component } from 'react';

import GoogleMapReact from 'google-map-react';



const AnyReactComponent = ({ text }) => <div>{text}</div>;



class MyClass extends Component {

  constructor(props){

    super(props);



  }



  render() {

    return (

      <GoogleMapReact

        defaultCenter={this.props.center}

        defaultZoom={this.props.zoom}

        style={{height: '300px'}}

      >

        <AnyReactComponent

          lat={59.955413}

          lng={30.337844}

          text={'Google Map'}

        />

      </GoogleMapReact>

    );

  }

}

MyClass.defaultProps = {

  center: {lat: 59.95, lng: 30.33},

  zoom: 11

};



export default MyClass;

使用过的npm包:-谷歌地图反应


问题答案:

您可以尝试:

import React, { Component } from 'react';
import GoogleMapReact from 'google-map-react';

const AnyReactComponent = ({  img_src }) => <div><img src={img_src} className="YOUR-CLASS-NAME" style={{}} /></div>;

class MyClass extends Component {
  constructor(props){
    super(props);
    this.state = {
        markers: [],
    }
  }

  componentDidMount(){
    // or you can set markers list somewhere else
    // please also set your correct lat & lng
    // you may only use 1 image for all markers, if then, remove the img_src attribute ^^
    this.setState({
      markers: [{lat: xxxx, lng: xxxx, img_src: 'YOUR-IMG-SRC'},{lat: xxxx, lng: xxxx, img_src: 'YOUR-IMG-SRC' },{lat: xxxx, lng: xxxx,  img_src: 'YOUR-IMG-SRC'}],
    });
  }

  render() {
    return (
      <GoogleMapReact
        defaultCenter={this.props.center}
        defaultZoom={this.props.zoom}
        style={{height: '300px'}}
      >
            {this.state.markers.map((marker, i) =>{
              return(
                <AnyReactComponent
                  lat={marker.lat}
                  lng={marker.lng}
                  img_src={marker.img_src}
                />

              )
            })}      
      </GoogleMapReact>
    );
  }
}
MyClass.defaultProps = {
  center: {lat: 59.95, lng: 30.33},
  zoom: 11
};

如果有错误,也请在此处显示,我们稍后可以修复

===========

标记点击事件的附加示例

 markerClicked(marker) {
   console.log("The marker that was clicked is", marker);
   // you may do many things with the "marker" object, please see more on tutorial of the library's author:
  // https://github.com/istarkov/google-map-react/blob/master/API.md#onchildclick-func 
  // Look at their examples and you may have some ideas, you can also have the hover effect on markers, but it's a bit more complicated I think 
 }

 render() {
    return (
      <GoogleMapReact
        defaultCenter={this.props.center}
        defaultZoom={this.props.zoom}
        style={{height: '300px'}}
      >
            {this.state.markers.map((marker, i) =>{
              return(
                <AnyReactComponent
                  lat={marker.lat}
                  lng={marker.lng}
                  img_src={marker.img_src}
                  onChildClick={this.markerClicked.bind(this, marker)}
                />

              )
            })}

      </GoogleMapReact>
    );
  }

再一次,在这里发布一些错误(如果有的话^^!)!



 类似资料:
  • 问题内容: 我正在使用NPM包创建Google Map和几个标记。 问题: 我们如何将默认的Google Maps标记添加到地图? 从这个Github问题来看,似乎我们需要使用onGoogleApiLoaded函数访问内部Google Maps API 。 参考Google Maps JS API文档中的示例 ,我们可以使用以下代码来呈现标记,但是如何定义对的引用? 当前代码: 问题答案: 从自述

  • 问题内容: 我正在使用jquery和Google Maps V3 API向Google Maps动态添加标记。当按钮被点击时,一个请求被使用AJAX,它返回经纬度的对应于该结果,这将被用于放置标记物的JSON数组发送到服务器。但是在我的Javascript Conole中,出现错误:。我哪里做错了?这是我的代码: HTML标头JS: jQuery的 问题答案: 您应该将全局变量称为map。就是这样

  • 在我的应用程序中,我使用的是谷歌地图,首先我是通过标记显示用户当前的位置,并通过一个透明的圆圈显示其准确性,现在当我想添加另一个标记到代表我以前的位置的同一点时,相同的代码对我不起作用,请有人帮我找出代码的错误,我只是想在一个地图视图中添加多个标记 下面是我用来显示两个标记的代码:- 通过使用MapOverlay类,我可以在地图上放置一个显示用户当前位置的pin,但当我使用MapOverlay1显

  • 使用react-google-map与MarkerClub sterer,我如何添加和删除标记从地图/群集后,地图被安装,例如。 我尝试过简单地创建一个新标记,将map设置为refs.map 以及使用. addMarker()函数,该函数定义在用于react-google-map中的MarkerClub sterer中的mark er屋而立rplus中,但没有任何功能。 两者都返回错误。 基于以下

  • 我的应用程序中有一个小问题,我可以将标记拖到可见地图上的任何位置。我在stackoverflow上引用了这个答案,在这里我可以通过标记拖动来设置地图的动画。但即使我不把标记放在地图上,它也会自己掉下来。 这是我的代码让它更清楚