首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R为传单生成彩色地图层

问用R为传单生成彩色地图层
EN

Stack Overflow用户
提问于 2016-04-08 18:07:27
回答 2查看 1.1K关注 0票数 1

我从事一个个人项目,她负责收集和存储天气数据(温度、CO2、湿度.)在一个MySQL数据库中(我已经尝试过PostgreSQL和post PostGIS),它来自一些工作的气象站。

在前端,我使用一个基于Laravel的web应用程序和传单显示映射数据(Laravel请求数据库并将GeoJSON文件返回给传单)。

为了使更好的可视化,我决定做一些插值,以涵盖缺失的数据,然后生成一个彩色层,以显示传单。

在第一步中,我使用IDW和Kriging插值算法编写了一些R脚本,在R中绘制结果看起来不错,但问题是我需要生成shape或geoJSON文件来将其传递给传单而不是图像。

经过一些研究,我意识到我需要使用像geoserver(WMS)这样的层服务器和Postgres,而不是使用MySQL .

在这一点上,我仍然很困惑该怎么做。

注意:我需要我的地图出现在这个网站上:http://www.irceline.be/

请帮忙,并提前感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-09 07:24:10

您可以在R端实现如下所有内容:

代码语言:javascript
复制
library(mapview)
library(sp)
library(htmlwidgets)

## point data
data(meuse)
coordinates(meuse) <- ~x+y
proj4string(meuse) <- CRS("+init=epsg:28992")

## grid data
data(meuse.grid)
coordinates(meuse.grid) <- ~x+y
proj4string(meuse.grid) <- CRS("+init=epsg:28992")
gridded(meuse.grid) <- TRUE

## map it
m <- mapview(meuse.grid, zcol = "dist") + meuse
m

## save it
saveWidget(m@map, file = "/path/to/file.html")

meuse将是您的点,meuse.grid是由插值生成的网格数据。

票数 2
EN

Stack Overflow用户

发布于 2016-06-14 15:30:44

另一种选择是使用我编写的IDW插件实现所有使用传单本身的内容:https://github.com/JoranBeaufort/Leaflet.idw使用插件--您仍然可以使用您的Laravel请求到数据库并返回GeoJSON文件,您可以将这些文件输入到插件中,生成传单中的IDW层。注意:这个插件只能在有限的点数下很好地工作,所以如果你有大量的点,你可以先对这些点进行聚类(我建议使用DBSCAN),然后将集群传递给插件。希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36506425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档