如何在反应中使用地图作为位置输入?

Ritesh Jung Thapa

我正在尝试制作一种表格,用户可以搜索其位置或固定其位置。react-leaflet用于加载地图和react-leaflet-search添加搜索功能。搜索功能运行正常。您可以在下面看到代码。

<Map center={position} zoom={zoom}  onDragEnd = {function(e){ console.log(e);}} >
  <TileLayer
    attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
    url='https://{s}.tile.osm.org/{z}/{x}/{y}.png'/>
  <Search 
    position="topright" 
    showPopup={false} 
    provider="OpenStreetMap" 
    showMarker={true} 
    openSearchOnLoad={true} 
    closeResultsOnClick={true} 
    providerOptions={{ region: "np" }}/>
</Map>

我要做的是访问用户输入的位置或用户选择位置后显示的标记的纬度经度。我试图搜索事件监听器,但找不到任何事件监听器。目前,我正在尝试使用onDragEnd事件,但尚未成功。谁能告诉我如何实现我的目标?

克里斯托斯·莱特拉斯(Christos Lytras)

不幸的是,react-leaflet-search没有适当的方法来检索搜索结果。mapStateModifier回调,我们可以用它来获得搜索结果坐标LatLng对象,但我们必须要建立在地图flyTo调用,以及:

render() {
  const position = [51.505, -0.09];
  const zoom = 13;

  return (
    <div>
      <Map 
        ref={ref => this.mapRef = ref}
        center={position} 
        zoom={zoom}
      >
        <TileLayer
          attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
          url='https://{s}.tile.osm.org/{z}/{x}/{y}.png' />

        <ReactLeafletSearch 
          ref={ref => this.mapSearchRef = ref}
          mapStateModifier={(latLng) => {

            // Do work with result latitude, longitude
            console.log('Search Latitude:', latLng.lat);
            console.log('Search Longitude:', latLng.lng);

            if (this.mapRef) {
              // Because we have a custom mapStateModifier callback,
              // search component won't flyTo coordinates
              // so we need to do it using our refs
              this.mapRef.contextValue.map.flyTo(
                latLng,
                this.mapSearchRef.props.zoom,
                this.mapSearchRef.props.zoomPanOptions
              );
            }
          }}
          position="topright" 
          showPopup={false} 
          provider="OpenStreetMap" 
          showMarker={true} 
          openSearchOnLoad={true} 
          closeResultsOnClick={true} 
          providerOptions={{ region: "np" }}
        />
      </Map>
    </div>
  );
}

您可以检查此示例Stackblitz以查看其工作情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在urljoin中使用地图?

来自分类Dev

如何在功能中使用地图

来自分类Dev

如何在Groovy中使用地图创建JSON

来自分类Dev

如何在Rails视图中使用地图方法

来自分类Dev

如何在Clojure中使用地图功能?

来自分类Dev

如何在反应原生中使用表单输入数据作为 axios 请求的输入?

来自分类Dev

ActiveRecord:includes-如何在已加载的关联中使用地图?

来自分类Dev

在python中使用地图

来自分类Dev

在Android中使用地图

来自分类Dev

在Python中使用地图

来自分类Dev

在python中使用地图

来自分类Dev

在 ReactJS 中使用地图?

来自分类Dev

如何使用Java在SPARK中使用地图功能

来自分类Dev

如何在字符串中使用Shiny输入作为反应功能以及观察事件的条件

来自分类Dev

如何在反应中将图像作为输入

来自分类Dev

如何在Collapsingtoolbarlayout中正确使用地图片段

来自分类Dev

如何在多种情况下使用地图

来自分类Dev

如何正确使用地图?

来自分类Dev

如何使用地图容器?

来自分类Dev

使用地图作为Maven插件参数

来自分类Dev

如何在SwiftUI中使用VStack作为功能的输入?

来自分类Dev

在Angular .ts文件中使用地图

来自分类Dev

在液体模板中使用地图

来自分类Dev

在javascript中使用地图功能

来自分类Dev

如何在Lambda中应用地图?

来自分类Dev

如何在Android中使用地理编码API(JSON)?

来自分类Dev

如何在 rxjs/operator 中使用地圖

来自分类Dev

如何在旧版Android OS中使用API V2显示GoogleMap(使用地图片段的情况下使用iam)

来自分类Dev

反应挂钩:无法使用地图功能创建列表