0

次のようにgmapユーザーコントロールを作成しました:

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="gmap.ascx.vb" Inherits="gmap" %>
<html>
<head>
<script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDgj_OLNlWvNs8nr2JPLON4GPCgsxTJRnU&sensor=false">
</script>

<script type="text/javascript">
function initialize(lat,lang)
{
var mapProp = {
center: new google.maps.LatLng(lat, lang),
  zoom:5,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };
var map=new google.maps.Map(document.getElementById("googleMap")
  ,mapProp);
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
<div id="googleMap" style="width:500px;height:380px;"></div>



</body>
</html>

バックエンド関数から緯度と経度を次のように渡します。

 Public Sub LattitudeLongitude(ByVal lat As Decimal, ByVal longit As Decimal)
        Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyScript", "javascript:initialize('" & lat & "','" & longit & "')", True)
    End Sub

場所が表示されません。

私はプログラムをデバッグし、どこでも緯度と経度の値を取得しました。

次のように私を示しています:

ここに画像の説明を入力

なぜ位置情報が表示されないのかわかりません。私を助けてください。

4

1 に答える 1

1

このinitialize()関数は、ページが読み込まれるたびに実行されます。ボタンのクリックでそれを呼び出しています。したがって、ボタンを初めてクリックしたときにこれを行うかどうかをテストすると、緯度と経度が渡され、ポストバックでは空になるため、空白のマップが表示されます。

あなたがする必要があるのは、スクリプトと分離コードの関数名を変更することだけです:

function DisplayMap(lat, lang) {

コードビハインド:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "javascript:DisplayMap('" + lat + "','" + longit + "')", true);

そして取り除くgoogle.maps.event.addDomListener(window, 'load', initialize);

于 2013-10-30T10:36:58.067 に答える