Загрузить полигон при нажатии на выноску маркера (реагировать на нативные карты) - PullRequest
0 голосов
/ 26 сентября 2019

В настоящее время я пытаюсь отобразить многоугольник на собственных картах реагирования только при нажатии определенного маркера.Я пытался отобразить круг для каждого события в моем списке, но это просто приводит к тому, что отображаются все круги, перекрывающиеся - см. Прикрепленное изображение

Я также попытался поместитьОбведите маркер и выноску, но это не похоже на работу.Подобно тому, как текст выноски отображается при нажатии на маркер, я также хочу отобразить круг / многоугольник вокруг него.Различные маркеры будут иметь различный радиус, связанный с ними.

Любая помощь приветствуется, спасибо!PS: у меня также есть ошибка на iOS, когда цвет заливки полигона просто иногда решает быть ничем.

(this.state.frenzyEventsList).map(event => (
  <View key={event.id} >
    <Marker 
      pinColor={"purple"}
      coordinate={{latitude: parseFloat(event.loc_lat), longitude: parseFloat(event.loc_long)}}
      title={event.name}
      description={event.description}> 

    <Callout
      alphaHitTest
      tooltip
      onPress={e => {
        if (
          e.nativeEvent.action === 'marker-inside-overlay-press' ||
          e.nativeEvent.action === 'callout-inside-press'
        ) {
          return ;
        }
        this.props.navigation.navigate('EventDetails', {
          title: event.title,
          description: event.description,
          frenzyMode: event.frenzyMode,
        });

      }}
      style={styles.customView}>
      <CustomCallout>                     
          <Text> {event.name} {event.radius} </Text>                   
      </CustomCallout>
    </Callout>
    </Marker>

    <Circle
    ref={ref => { this.invitationRadius = ref; }}

    key = {(this.props.frenzyRadius).toString() }

    center = {{
      latitude: parseFloat(event.loc_lat),
      longitude: parseFloat(event.loc_long), } 
    }
    radius = {parseFloat(event.radius)}
    fillColor =  {'#ffb3b3'}
    strokeColor= {'#e80c25'}
    strokeWidth = { 2 }
    /> 

  </View>
...