2017-02-10 8 views
1

Я только начал использовать библиотеку с реакциями и получил карту для загрузки с помощью слоя geoJSON, однако вместо этого я бы использовал слой TopoJSON.Реакция-листовка: добавление слоя TopoJSON

Я знаю, что это возможно с чистым листом, например: https://gist.github.com/rclark/5779673/.

Но как бы я сделал это с помощью React-Leaflet?

Редактировать

class MapViz extends React.Component { 

    getStyle() {...}; 

    render() { 
     const position = [x,y]; 
     var geoData = topojson.feature(test_topo,test_topo.objects).geometries; 
     return (
      <Map id="my-map" center={position} zoom={10.2}> 
       <TileLayer ... /> 
       <GeoJSON data={geoData} style={this.getStyle} /> 
      </Map> 
     ) 
    } 
} 

ответ

0

Это очень похоже на суть вы связаны между собой. Вам необходимо преобразовать из TopoJSON в GeoJSON и установить данные, как обычно, с GeoJSON. Это может быть в вашем методе визуализации

import topojson from 'topojson'; 
.... 
.... 


render() { 
    geoData = topojson.feature(topoData,topoData.objects).features; 

    return (
    <LeafletMap> 
     <GeoJson 
     data={geoData} 
     /> 
    </LeafletMap> 
) 
} 
+0

Я редактировал вопрос, чтобы показать код: Но появляется эта ошибка: '' 'Warning: Failed пропеллера типа: опора' data' маркируются в соответствии с требованиями 'GeoJSON', но его значение' undefined'. в GeoJSON (созданный MapViz) в MapViz (созданный App) '' ' – Heather

+0

ваши геоданные не определены, проверьте, правильно ли вы загружаете test_topo или получаете правильные его свойства –

Смежные вопросы