我实际上正在努力使用 Google Maps API 显示位置。但纬度和经度的值是从我的database.mdf 文件中的表中获取的,然后分别解析为2 个隐藏字段。
我想问一下我写代码的方式,值是null吗?
我对 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 map 出现..
存储在我的数据库中的坐标是 float 据类型。
最佳答案
请尝试此代码。在 html 中,您将 div class
设置为属性,在 java 脚本中,您将检索为 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')
并确保服务器端的纬度和经度值位于隐藏变量中。
关于javascript - JS 中的变量是否为空?谷歌地图 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45406504/