我实际上正在使用Google Maps API显示位置。但纬度和经度的值取自我的database.mdf文件中的表,然后分别解析为2个HiddenField。
我想问一下我编写代码的方式,值是否为空?
我对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中脚本标记下的代码
<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(纬度和经度)类的值是否为空2?我似乎无法显示Google地图..
我的数据库中存储的坐标是float数据类型。
答案 0 :(得分:1)
请尝试此代码。在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')
并确保从服务器端lat&amp; lng值来自隐藏变量。