1

反应传单需要 lat 和 lng 以在地图中显示所需的位置。我如何从给定地址计算纬度和经度?我需要两个地址的 lat 和 lng。

我是否必须使用地理编码器并在其中包装 renderMap 函数?在我的代码中,我想要 cityOrigen 和 cityDestino 的 lat 和 lng。

function renderMap(cityOrigen, cityDestino) {
  return <ReactMap crityOrigen={cityOrigen} cityDestino={cityDestino} />;
}

const ReactMap = ({ cityOrigen, cityDestino }) => {
  const position = [51.505, -0.09];
  return (
    <Map center={position} zoom={13} style={{ height: 500 }}>
      <TileLayer
        url='https://mt{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}'
      />
      <Marker position={position}>
        <Popup>
          <span>A pretty CSS3 popup.</span>
        </Popup>
      </Marker>
    </Map>
  );
};

class CarResult extends Component {
  render() {
    const { carResult, origen, destino } = this.props;
    const cityOrigen = origen && origen.label.split(', ')[0];
    const cityDestino = destino && destino.label.split(', ')[0];
    const carResultMap = renderMap(cityOrigen, cityDestino);
    if (!carResult.fetching) {
      return (
        <div>
          Hemos encontrado {carResultList.length} ofertas para ti.
          <div className="car-result-container">
            <Grid fluid>
              <Row>
                <Col xs={12} sm={12} md={6}>
                  {carResultList}
                </Col>
                <Col x={12} sm={12} md={6}>
                  {carResultMap}
                </Col>
              </Row>
            </Grid>
          </div>
        </div>
      );
    }
    }
4

1 回答 1

0

几件事:

  • renderMap你有cityOrigen并且 ReactMap 组件正在被传入crityOrigen。我确定这只是一个错字。

  • 您可以使用 Leaflet Geocoder 插件,例如这个。您可以将其放入您的renderMap函数中以解析位置(我假设是cityDestinoand cityOrigen,在地址中)。

于 2016-12-22T21:02:23.273 回答