我在asp.net上构建了一个项目,它拥有自己的数据库。这个数据库一直在使用连接到arduino的传感器进行更新,并且它们正在更改数据库中的表。 (更具体地说 - 停车场下面有磁传感器,当汽车停在这个停车场时,数据库中的停车位置变为假。)
我想在我的网站上的google maps api上嵌入这个sql数据库(asp.net)。所以,在我的网站上,我会看到谷歌地图和所有停车场的状态(标记?),用数据库实时更新,(绿色如果是真的,红色 - 如果它是假的)
该数据库由两个不同的表组成。
我的查询是用LINQ编写的。我已经读过我需要使用json / geojson文件。
它是正确的?你能解释一下这个吗?如何使这个json文件始终与DB一起更新?
谢谢!!
https://developers.google.com/maps/documentation/javascript/
看看上面链接的文件。我只是使用JavaScript,可能通过REST API消耗您的数据,并通过重新检查数据定期更新地图。
您需要注册Google的密钥。您可以免费获得一个,在给定时间内为您提供有限数量的请求。如果您需要使用更多,则需要付费。
如果您不想打扰REST并且只想在每个页面加载时进行一次更新,那么您可以在页面上使用Page_Load并以这种方式将数据传递给客户端/ JavaScript。像下面这样的东西。但我赞成使用Web服务方式,因为您可以在不需要重新加载页面的情况下进行更新。
protected void Page_Load(object sender, EventArgs e)
{
var sqlData;
using (SqlDataDataContext ctx = new SqlDataDataContext(ConfigurationManager.ConnectionStrings["ConnectionDB"].ConnectionString))
{
sqlData = ctx.GetCurrentData();
}
StringBuilder sbJs = new StringBuilder();
sbJs.AppendLine(@"var sqlData = new Array();");
int i = 0;
foreach(var sqlRow in sqlData)
{
sbJs.AppendLine(String.Format("sqlData.push({id:{0}, latitude:{1}, longitude:{2}, status:{3}});", sqlRow.Id, sqlRow.latitude , sqlRow.longitude, sqlRow.status);
}
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "DynamicScript", sbJs.ToString(), true);
}