【问题标题】:Are my Variables in JS null? Google Maps API我在 JS 中的变量是否为空?谷歌地图 API
【发布时间】:2018-01-06 11:19:38
【问题描述】:

我实际上正在使用 Google Maps API 显示位置。但是纬度和经度的值是从我的database.mdf文件中的一个表中获取的,然后分别解析成2个HiddenFields。

我想问一下我写代码的方式,值是空的吗?

我对 JavaScript 没有太多经验..

图片/代码在底部说明..

从我的 page.aspx.cs 文件中,我将 HiddenFields 值分别设置为纬度和经度。

foreach (DataRow r in ds.Tables[0].Rows)
        {
            accountDB = r["AccountStatus"].ToString();
            latitudeDB = Convert.ToDouble(r["Latitude"]);
            longitudeDB = Convert.ToDouble(r["Longitude"]);
            usernameDB = r["Username"].ToString();
            ipDB = r["IPAddressOfCreation"].ToString();
        }
HF_Latitude.Value = latitudeDB.ToString();
        HF_Longitude.Value = longitudeDB.ToString();

page.aspx中script标签下的代码

<div id="generatedMap" style="width: 525px; height: 300px; background-color: grey;"></div>
                <script type="text/javascript">
                    function initMap() {
                        var latitudeDB = parseFloat(document.getElementById("<%= HF_Latitude.ClientID %>").value);
                        var longitudeDB = parseFloat(document.getElementById("<%= HF_Longitude.ClientID %>").value);

                        var mapProp = {
                            zoom: 15,
                            center: new google.maps.LatLng(latitudeDB, longitudeDB),
                            mapTypeId: google.maps.MapTypeId.HYBRID,
                        };

                        var map = new google.maps.Map(document.getElementById("generatedMap"), mapProp);

                        var marker = new google.maps.Marker({
                            position: new google.maps.LatLng(latitudeDB, longitudeDB),
                            map: map,
                            title: "<div style = 'height:50px;width:120px'><b>Consumer's location:</b><br />Latitude: " + latitudeDB + "<br />Longitude: " + longitudeDB,
                        });
                    }
                </script>
                <script src="https://maps.googleapis.com/maps/api/js?key=GOOGLE_API_KEY&callback=initMap"></script>

我解析到类 new.google.maps.Latlng(纬度和经度)中的值,这两个值是否为空?我似乎无法让 Google 地图出现..

存储在我的数据库中的坐标是浮点数据类型。

【问题讨论】:

  • 如果 (latitudeHF.value != null) latitude = latitudeHF.value 会不会?

标签: javascript asp.net google-maps google-maps-api-3 null


【解决方案1】:

请尝试此代码。在 html 中,您将 div class 设置为属性,而在 java-script 中,您将检索为 Id 属性,这就是谷歌地图没有出现的问题。

代替:

<div class="generatedMap"></div>

应该是:

<div id="generatedMap"></div>

Javascript 代码将保持原样。如果您想保持课程不变,请在 javascript 中使用打击代码

代替:

var map = new google.maps.Map(document.getElementById('generatedMap')

应该是:

var map = new google.maps.Map(document.getElementsByClassName('generatedMap')

并确保来自服务器端的 lat & lng 值来自隐藏变量。

【讨论】:

  • 首先我不确定如何在 js 文件中获取服务器端变量值。我认为您正在使用 .net 框架。所以请您存储此值并将这两个变量放入警报/控制台,这样你会得到更好的主意。如果您获得 lat & lng 的值,那么您是否在控制台中收到任何错误?
  • 将立即尝试。我实际上分别从我的数据库 lat 和 lng 中检索 2 个值,然后将它们分别存储到 2 个隐藏字段中..
  • 好的,所以您在 1 页中创建了 2 个隐藏变量,然后您是否能够获取此变量值?
  • 我刚刚尝试使用 Debug.WriteLine(相应的 lat 和 lng),我从数据库中得到了这 2 个确切的值.. 但我不认为它会将其发送到 javascript..
  • 这是服务器端的问题,只需创建 viewBar 对象并在 cshtml 页面中像这样获取值 var temp_lat = '@ViewBag.lat';.
猜你喜欢
  • 1970-01-01
  • 2016-04-16
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多