2017-07-31 25 views
0

我實際上正在使用Google Maps API顯示一個位置。但緯度和經度的值取自我的database.mdf文件中的表格,然後分別解析爲2個HiddenField。我的JS中的變量爲null嗎? Google Maps API

我想問我寫代碼的方式,值是否爲空?

我用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

難道是如果(latitudeHF.value!= null)latitude = latitudeHF.value? – domster

回答

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') 

,並確保從服務器-side lat & lng值將進入隱藏變量。

+0

首先,我不確定如何獲得js文件中的服務器端變量值。我認爲你正在使用.net framework.So請你可以存儲這個值,並將這兩個變量放在alert/console中,這樣你就可以得到更好的主意。如果你正在獲取lat&lng的值,那麼你是否在控制檯中發現任何錯誤? –

+0

立即嘗試。我實際上分別從我的數據庫lat和lng中檢索2個值,然後將它們分別存儲到2個隱藏域中。 – domster

+0

好吧,您在1頁中創建2個隱藏變量,然後才能獲取此變量值? –