javascript - 用户单击标记图标时如何更改 Google map 标记图标

标签 javascript reactjs react-google-maps

我使用 tomchentw react-google-maps 创建了 Google map 。默认情况下,标记图标显示红色标记图标,但每当用户单击标记图标时,它应该变为灰色标记图标并增加标记图标大小。我该如何更改它?

<Marker
  onClick={this.MarkerClicked.bind(this,house._id)} 
  icon={{url: "/images/mapRed2.png"}} 
  position={{lat: house.location.lat, lng: house.location.lng}}
/>

当我的标记图标被点击时,它应该改变它的图标和大小。

最佳答案

该示例演示了如何在单击按钮后更新标记图标和大小:

const Map = compose(
    withScriptjs,
    withGoogleMap,
    withStateHandlers(() => ({
        iconUrl: "http://maps.google.com/mapfiles/ms/icons/red.png",
        iconSize: new google.maps.Size(32, 32)
    }), {
            onMarkerClick: () => () => ({
                iconUrl: "http://maps.google.com/mapfiles/ms/icons/blue.png",
                iconSize: new google.maps.Size(64, 64)
            })
        })
)(props =>
    <GoogleMap
        defaultZoom={8}
        defaultCenter={{ lat: -34.397, lng: 150.644 }}>
        <Marker onClick={props.onMarkerClick}
            icon={{ url: props.iconUrl, scaledSize: props.iconSize }}
            position={{ lat: -34.397, lng: 150.644 }} />

    </GoogleMap>
)

要点:

  • icon.scaledSize 属性用于调整标记图标的大小

  • iconUrliconSize 状态属性传递给 Marker 组件一旦触发onClick事件

Demo

关于javascript - 用户单击标记图标时如何更改 Google map 标记图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49511040/

相关文章:

javascript - 隐藏透明 DIV 后面的元素但不隐藏背景

javascript - 使用回调函数与仅在函数内插入函数相比有什么好处

css - 将禁用时的 TextField 的 borderBottom 样式更改为 'none' ?

javascript - 将 Reactstrap 与 Next.js 结合使用

reactjs - 如何使用本地png自定义react-google-maps标记?

javascript - 使用 onBoundsChanged react 谷歌地图重新渲染问题

javascript - 使用 setTimeout 缓出

javascript - JQuery Mobile 隐藏 &lt;input&gt; 不会隐藏 &lt;input&gt; 字段周围的 <div>

javascript - sequelize 查询 : response gives me non-exist column

reactjs - React Google Map DirectionsRenderer 问题