当前位置: 首页 > 知识库问答 >
问题:

如何在React上更新谷歌地图的位置

李景天
2023-03-14

我在一个Google Map组件中使用,在主组件中发送道具(坐标作为数组),最后第二个组件(地图)重新使用了这个,我想在地图上显示新的位置。

不幸的是,这没有工作,坐标,正确地改变和组件(地图)累加,但没有刷新。因为当尝试这样做时,地图是白色的(空的),没有什么可显示的

>

  • LAT和Lng以一个坐标开始,setState放入一个新的
  • 不要把整个组件,但这是我调用映射的方式

    render() {
    return (
        <div className="main">
            <div className="main__map">
                <TheMap center={[this.state.lat, this.state.lng]} />
            </div>
    

    Map组件

    import React from 'react'
    import GoogleMapReact from 'google-map-react';
    
    function TheMap(props){
        const MyCustomMarker = () => <span class="material-icons">place</span>;
        return(
            <GoogleMapReact
                yesIWantToUseGoogleMapApiInternals
                bootstrapURLKeys={{key:'THE KEY'}}
                defaultZoom={16}
                center={props.center}
            >
                <MyCustomMarker
                    lat={props.center[0]}
                    lng={props.center[1]}
                />
            </GoogleMapReact>
        )
    }
    
    export default TheMap
    
  • 共有1个答案

    裴硕
    2023-03-14

    您可以使用钩子,useEffect()可以使用更新的道具重新编辑组件。下面是代码段。

    import React,{useState , useEffect} from 'react';
    import GoogleMapReact from 'google-map-react';
    
    function TheMap(props){
        const [cordinates , setCordinates] = useState(props);
        const MyCustomMarker = () => <span class="material-icons">place</span>;
        
        useEffect(() => {
           setCordinates(props);
       }, [props])
       
        return(
            <GoogleMapReact
                yesIWantToUseGoogleMapApiInternals
                bootstrapURLKeys={{key:'THE KEY'}}
                defaultZoom={16}
                center={cordinates.center}
            >
                <MyCustomMarker
                    lat={cordinates.center[0]}
                    lng={cordinates.center[1]}
                />
            </GoogleMapReact>
        )
    }
    
    export default TheMap
    
     类似资料:
    • 在我的应用程序中,我有一个按钮,它从数据库中提取经度和纬度,并将它们存储到一个名为bgworker的类中的两个变量中,然后这些变量显示在屏幕上,如下所示:https://I.imgur.com/5ld231v.png 然后将变量与代码一起发送到Google Maps片段: 然而,地图片段本身从不更新,坐标总是设置为0,0我如何更新我的地图上的位置,每当变量更新(这是在单击按钮) 我遇到的两个问题是

    • 长话短说,我想更新地图上的标记仅使用传感器数据,但我在API中找不到允许我更新地图上的纬度/经度的库函数。根据我计算的新纬度/经度,有什么东西可以做到这一点吗?

    • 我是一名android开发人员,已经使用它开发上下文感知应用程序有一段时间了。位置是上下文感知的重要内容之一,而位置的准确性是非常重要的。 我知道怎么用LocationManager从GPS上得到位置...我知道如何在Android上使用谷歌地图开发应用程序...以及如何在地图上显示用户…但是我的朋友们发现,当他们去外国参加会议时,他们在LocationManager上的位置与谷歌地图相比非常不准

    • 我正在使用新的API(Google Map API V2)为我的android应用程序,我已经创建了地图并添加了标记,现在我的任务是手动创建一个围绕任何标记的圆,我还想为用户提供一个功能,他可以相应地增加该圆的半径,为此我给出了一个条,当用户增加该条时,圆的半径将增加,反之亦然。 如果有人知道如何使用GoogleMapAPIV2来完成此操作,请提供帮助,

    • 为了更熟悉Android编程,我一直在开发一款位置欺骗软件,我注意到我的应用程序似乎不会欺骗谷歌地图。它适用于Facebook和我测试过的其他一些应用程序,但即使关闭了Wifi和GPS,谷歌地图也知道我的确切位置,而不是我伪造的位置。我从Play Store(FakeLocation)下载了另一个欺骗应用,它似乎也没有欺骗谷歌。 这个人似乎也有同样的问题(Android Mock位置不适用于谷歌地