代码之家  ›  专栏  ›  技术社区  ›  Tamir Hazan

从asp嵌入在线数据库。net在谷歌地图上

  •  0
  • Tamir Hazan  · 技术社区  · 8 年前

    我已经在asp上构建了一个项目。net和它有自己的数据库。该数据库一直在使用连接到arduino的传感器进行更新,根据这些传感器,数据库中的表正在更改。(更具体地说,停车场下方有磁性传感器,当一辆车进入该停车场时,数据库中的停车ststus变为false)。

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

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

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

    是否正确?你能给我解释一下吗?如何使这个json文件始终随DB更新?

    谢谢您!!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Ben Morris    8 年前

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

    看看上面链接的文档。我只想使用JavaScript,或许可以通过restapi使用您的数据,并通过重新检查数据定期更新映射。

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

    如果您不想为REST操心,只想对每一负载的页面进行一次更新,那么您可以利用页面上的page\u负载,通过这种方式将数据传递给客户端/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);
        }