ios - react-native-maps 为每个区域填充颜色

我需要将动态 GeoJSON 数据渲染到 iOS 中的 map 。

我正在使用 react-native-maps。我能够将 geojson 渲染到 map 上,但它只显示每个区域的笔划而不显示填充颜色:

如何为 map 上的每个州或地区添加独特的颜色?

最佳答案

您需要确保您的 GeoJSON 在 geojson.features[n].properties.fill 处具有有效的填充值。如果您的 GeoJSON 还没有那个值,您可以编写一个函数来添加它。例如:

const colorizedGeojson = {
    ...geojson,
    features: geojson.features.map(feature => ({
        ...feature,
        properties: {
            ...feature.properties,
            fill: getColor(feature.properties.values.population)
        }
    })),
};

您必须实现自己的 getColor 函数,具体取决于您要表示的数据。这里使用的 population 值只是一个例子。使用 d3 插值来获取要表示的值的颜色是一种常见的选择。

fill 属性添加到 GeoJSON 数据后,您可以将该对象传递给组件。确保您没有将 fillColor 属性传递给组件,因为这会覆盖特征颜色。

<Geojson geojson={colorizedGeojson} />

就是这样! react-native-maps 组件将使用您选择的颜色呈现每个地区/国家:

https://stackoverflow.com/questions/45328598/

相关文章:

php - 使用 PHP curl 从 Google 的地理编码 API 返回数据

laravel - smtp 中继 - g 套件 - 带有自定义域电子邮件的 gmail

java - Hibernate ManyToOne 保存对象

android - setMultiChoiceItems 对话框中的图标 - Android

python - 管道输入错误 "Input Contains NaN"

sql - 使用 SQL 查询将 Excel 数据加载到 Azure SQL 中

bash - 如何在 Powerline-Plain [Bash-it] 主题的提示中显示彩色主机名

ios - Xcode 和安装的 SF Pro Display(Apple 字体)

outlook - 仅在 Web 上启用 Outlook Web 插件

python - 如何从 YouTube 搜索中抓取视频?