我从事一个个人项目,她负责收集和存储天气数据(温度、CO2、湿度.)在一个MySQL数据库中(我已经尝试过PostgreSQL和post PostGIS),它来自一些工作的气象站。
在前端,我使用一个基于Laravel的web应用程序和传单显示映射数据(Laravel请求数据库并将GeoJSON文件返回给传单)。
为了使更好的可视化,我决定做一些插值,以涵盖缺失的数据,然后生成一个彩色层,以显示传单。
在第一步中,我使用IDW和Kriging插值算法编写了一些R脚本,在R中绘制结果看起来不错,但问题是我需要生成shape或geoJSON文件来将其传递给传单而不是图像。
经过一些研究,我意识到我需要使用像geoserver(WMS)这样的层服务器和Postgres,而不是使用MySQL .
在这一点上,我仍然很困惑该怎么做。
注意:我需要我的地图出现在这个网站上:http://www.irceline.be/
请帮忙,并提前感谢。
发布于 2016-04-09 07:24:10
您可以在R端实现如下所有内容:
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是由插值生成的网格数据。
发布于 2016-06-14 15:30:44
另一种选择是使用我编写的IDW插件实现所有使用传单本身的内容:https://github.com/JoranBeaufort/Leaflet.idw使用插件--您仍然可以使用您的Laravel请求到数据库并返回GeoJSON文件,您可以将这些文件输入到插件中,生成传单中的IDW层。注意:这个插件只能在有限的点数下很好地工作,所以如果你有大量的点,你可以先对这些点进行聚类(我建议使用DBSCAN),然后将集群传递给插件。希望这能有所帮助
https://stackoverflow.com/questions/36506425
复制相似问题