在 google 地图上嵌入来自 asp.net 的在线数据库

embed online database from asp.net on google maps

我在 asp.net 上构建了一个项目,它有自己的数据库。该数据库一直在使用连接到 arduino 的传感器进行更新,并且根据它们,数据库中的表正在发生变化。 (更具体地说-停车场下面有磁传感器,当汽车驶上这个停车场时,数据库中的停车状态变为false)。

我想将此 sql 数据库 (asp.net) 嵌入我网站上的 google 地图 api。 所以在我的网站上,我会看到 google 地图和所有停车场及其状态(标记?),使用 DB 实时更新,(如果为真则为绿色,如果为真则为红色假)

数据库由两个不同的表组成。

我的查询是用 LINQ 编写的。 我读过我需要使用 json / geojson 文件。

正确吗?你能详细解释一下吗?我怎样才能使这个 json 文件始终随数据库更新?

谢谢!

https://developers.google.com/maps/documentation/javascript/

查看上面链接的文档。我只会使用 JavaScript 或通过 REST API 消耗您的数据,并通过重新检查数据定期更新地图。

您需要使用 Google 注册密钥。您可以免费获得一个,在给定时间内为您提供有限数量的请求。如果您需要使用更多,则需要付费。

如果您不想为 REST 而烦恼,只想每次加载页面更新一次,您可以在您的页面上使用 Page_Load 并以这种方式将您的数据传递给客户端 side/JavaScript。像下面这样的东西。但我更喜欢网络服务方式,因为您无需重新加载页面即可更新。

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);
    }