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

问题描述 投票:0回答:1

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

我想在我的网站上的google maps api上嵌入这个sql数据库(asp.net)。所以,在我的网站上,我会看到谷歌地图和所有停车场的状态(标记?),用数据库实时更新,(绿色如果是真的,红色 - 如果它是假的)

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

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

它是正确的?你能解释一下这个吗?如何使这个json文件始终与DB一起更新?

谢谢!!

c# asp.net json google-maps geojson
1个回答
0
投票

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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.