Как настроить маркер response-google-map с локальным png? - PullRequest
0 голосов
/ 07 октября 2018

Я недавно пытаюсь реализовать tomchentw / реагировать-google-maps, но я не могу понять, как обрезать значок маркера, по умолчанию он показывает красный значок, он работал нормально, но когда я пытаюсьПередайте пиктограмму реквизита, маркер не был показан.

вот мой код:

/* global google */
import React, { Component } from 'react';
import { MarkerWithLabel } from 'react-google- 
maps/lib/components/addons/MarkerWithLabel';
import {
  withScriptjs,
  withGoogleMap,
  GoogleMap,
  Marker,
} from 'react-google-maps';
import { compose, withProps, withHandlers } from 'recompose';


const MapWithAMarkerClusterer = compose(
  withProps({
    googleMapURL: "https://maps.googleapis.com/maps/api/js?key=AIzaSyC3naz5xCZtPlOeMo38InY3GFr4k8A2LO0&v=3.exp&libraries=geometry,drawing,places",
    loadingElement: <div style={{ height: `100%` }} />,
    containerElement: <div style={{ height: `100%` }} />,
    mapElement: <div style={{ height: `100%` }} />,
  }),
  withScriptjs,
  withGoogleMap
)(props =>
  <GoogleMap
    defaultZoom={11}
    defaultCenter={{ lat: 25.0391667, lng: 121.525 }}
  >
          <Marker
          position={{ lat: 25.0391667, lng: 121.525 }}
          icon={{
            url: 'assets/image2vector.svg',
            anchor: new google.maps.Point(5, 58),
          }}
        />   
  </GoogleMap>
);

class googleMap extends Component {

  render() {
    return (
      <MapWithAMarkerClusterer />
    )
  }
}

export default googleMap;

если я уберу икону реквизита, красный маркер вернется.Но я действительно хочу использовать свою собственную локальную иконку.Как я могу это сделать?

1 Ответ

0 голосов
/ 07 октября 2018

Вам нужно либо импортировать, либо использовать require непосредственно в render для визуализации изображения

Ниже представлены два способа рендеринга изображений в React.

    import vector from 'assets/image2vector.svg';


    icon={{
        url: vector,
        anchor: new google.maps.Point(5, 58),
      }}

Или использование требует напрямую

   icon={{
        url: require('assets/image2vector.svg'),
        anchor: new google.maps.Point(5, 58),
      }}
...