Итак, после другого проекта, который потребовал моего внимания, я смог выяснить это вчера. В моем примере выше я сделал что-то вроде кода ниже.
<MapboxGL.ShapeSource shape={{type: "FeatureCollection", features: this.state.routes}}/>
Через некоторое время я смог выяснить, что объект формы на самом деле требует от вас предоставления полного и полного объекта геоджона. Это то, что я думал, что уже предоставлял, но, похоже, я не предоставлял. Сначала я установил пакет для Javascript, который позволяет мне что-то анализировать в geojson. Пакет NPM, который я использовал .
Затем я начал отображать свой объект данных в пустой массив, выполнив что-то вроде этого:
let data = [];
outsideMarkerlist.map((element) => {
data.push(element);
})
На самом деле, я не уверен, требуется ли вышеуказанный шаг, но это то, что мне подходит. Результирующий массив - это то, что я смог проанализировать на самом деле как геоджсон:
const geojson = GeoJSON.parse(data, {Point: ['latitude', 'longitude']});
Второй аргумент обозначает тип геометрии, проверьте документацию для поддерживаемых типов. Также обязательно замените переменные «широта» и «долгота» на имена свойств в вашем наборе данных, которые представляют эти значения, и тогда вы сможете исправить проблему.
this.setState({json: geojson})
Таким образом, единственная часть, которую нужно показать сейчас, это источник формы в функции рендеринга. Это выглядит примерно так, как показано ниже.
<MapboxGL.ShapeSource id="routeSource" shape={this.state.json}>
<MapboxGL.LineLayer
id="routeFill"
style={layerStyles.route}
/>
</MapboxGL.ShapeSource>