我已经在ASP.NET上构建了一个项目,并且它具有自己的数据库。该数据库一直通过连接到Arduino并与他们签名的传感器一直在更新,并且DB中的表正在发生变化。(更具体地说 - 停车场下有磁性传感器,当汽车在此停车场上驶入时,数据库中的停车位变为false)。
我想在我的网站上将此SQL数据库(ASP.NET)嵌入Google Maps API。以便在我的网站中,我将看到Google地图和所有及其状态的停车位(标记?),用DB实时更新(如果是元,则为green,红色 - 如果是false)
数据库由两个不同的表组成。
我的查询是用linq编写的。我读到我需要与JSON/GEOJSON文件一起使用。
正确吗?你能解释一下我吗?我该如何使此JSON文件始终使用DB进行更新?
谢谢!
https://developers.google.com/maps/documentation/javascript/
查看上面链接的文档。我只会使用JavaScript可能通过REST API消耗您的数据,并通过重新检查数据来定期更新地图。
您需要使用Google注册键。您可以免费获得一个,可以在给定时间内为您提供有限数量的请求。如果您需要使用更多,则需要付款。
如果您不想打扰休息,并且只想每个页面加载一个更新,则可以在页面上使用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);
}