-2

友達、今私は位置情報を取得するためにグーグルAPIを使用しています。私は位置情報を取得していますが、それを変数にも隠しフィールドにも保存することができません。誰かが私がどこで間違いをしているのかを知るのを手伝ってくれますか?

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>  

   <script language="javascript" type="text/javascript">
    var map;
    var geocoder;// = new google.maps.Geocoder();
    var address;        
    function initialize() {
        var latlng = new google.maps.LatLng(document.getElementById("<%=txtLatitude.ClientID %>").value, document.getElementById("<%=txtLongitude.ClientID %>").value);
        var myOptions = {
            zoom: 5,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map"), myOptions);
        var marker = new google.maps.Marker(
        {
            position: new google.maps.LatLng(document.getElementById("<%=txtLatitude.ClientID %>").value, document.getElementById("<%=txtLongitude.ClientID %>").value),
            map: map,
            title: 'Click me'
        });
        geocoder = new google.maps.Geocoder();
        geocoder.geocode({ "latLng": latlng }, function(data, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                address = data[0].formatted_address;
                alert(address);
            }
        });           
        var infowindow = new google.maps.InfoWindow({
        content: 'Location info:' + address + '<br/>LatLng:' + document.getElementById("<%=txtLatitude.ClientID %>").value + ',' + document.getElementById("<%=txtLongitude.ClientID %>").value            
        });
        google.maps.event.addListener(marker, 'click', function() {
            infowindow.open(map, marker);
        });
    }
    window.onload = initialize;
</script>
4

3 に答える 3

2

エラーが発生しました。マーカーに割り当てる前に、コンテンツで情報ウィンドウを初期化しています。イベントハンドラーでコンテンツを設定します。

これがあなたのコードのあり方です-

 google.maps.event.addListener(marker, 'click', function () {

               infowindow.setContent('Location info:' + address + '<br/>LatLng:' + document.getElementById("<%=txtLatitude.ClientID %>").value + ',' + document.getElementById("<%=txtLongitude.ClientID %>").value);
               infowindow.open(map, marker);
           });
于 2012-10-30T11:39:19.617 に答える
1

エラーメッセージ(コメントに隠れてはならず、質問に含まれている必要があります)は、IDが<%=hdnAddress.ClientID %>等しい要素がページにないことを意味します。の価値は何<%=hdnAddress.ClientID %>ですか?それを含む必要があるHTMLを表示できますか?

于 2012-10-30T10:38:27.143 に答える
0

配列の最初の要素のインデックスは1ではなく0であるため、代わりにdata[1].formatted_address;を使用する必要がありますdata[0].formatted_address;

于 2012-10-30T10:07:37.917 に答える