2017-07-31 4 views
0

Google Maps APIを使用して実際に場所を表示しようとしています。しかし、緯度と経度の値は、database.mdfファイルのテーブルから取得され、それぞれ2つのHiddenFieldsとして解析されます。JSの変数はnullですか? Google Maps API

私はコードを書いている方法で質問したいと思いますが、値はnullですか?

私は緯度であることをHiddenFields値を設定しています、私のpage.aspx.csファイルから...一番下に

を説明するために...

写真/コードをJavaScriptで多くの経験を持っていませんそれぞれ経度と経度です。 page.aspxのスクリプトタグ下

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(); 

コード

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

iはクラスnew.google.maps.Latlng(緯度、経度)に解析値は、ヌルこれら2つの値がありますか?私はGoogle Mapsを表示させるように見えません。

私のデータベースに保存されている座標はfloatデータ型です。

+0

(latitudeHF.value!= null)latitude = latitudeHF.value? – domster

答えて

1

このコードを試してください。 htmlではdivとしてclassを属性として設定し、javaスクリプトではIdという属性を取得しているため、Googleマップが表示されないという問題があります。

の代わりに:

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

は次のようになります。それはあるよう

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

Javascriptコードが残ります。

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

は次のようになります。:それは、その後であるとして、あなたがクラスを維持したい場合

の代わりには、JavaScriptでブローコードを使用

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

そして、それを確認して、サーバーから-side lat & 1ngの値が隠れ変数に入っています。

+0

まず第一に私はどのようにjsファイル内のサーバー側の変数値を取得するか分かりません。私はあなたがこの値を保存し、ちょうど警告/コンソールにこれらの2つの変数を置くことができますので、より良いアイデア。 lat&lngの値を取得している場合、コンソールでエラーが発生していますか? –

+0

すぐにそれを試みます。実際に私のデータベースのlatとlngから2つの値を実際に取り出して、2つの隠しフィールドに別々に格納しています。 – domster

+0

これで1つのページに2つの隠し変数を作成した後、この変数の値を取得できますか? –

関連する問題