0

これが私のコードです:

<script type="text/javascript">
            var geocoder;
            var map;
            var latlngstr;
            function initialize() {
                geocoder = new google.maps.Geocoder();
                var latlng = new google.maps.LatLng(-34.397, 150.644);
                var mapOptions = {
                    zoom: 15,
                    center: latlng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
            }


            function codeAddress() {
                var address = document.getElementById('address').value;

                geocoder.geocode({ 'address': address }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {

                        latlngstr = results[0].geometry.location;

                        map.setCenter(results[0].geometry.location);
                        var marker = new google.maps.Marker({
                            map: map,
                            position: results[0].geometry.location
                        });
                    } else {
                        alert('Geocode was not successful for the following reason: ' + status);
                    }
                });


                document.getElementById('lat').value = latlngstr.lat();
                document.getElementById('lng').value = latlngstr.lng();
            }
        </script>
      </head>
      <body onload="initialize()">
          <form  id="form1" runat="server">

        <div>
            <input id="address" type="text" value="sydney" />
            <input type="button" value="Geocode" onclick="codeAddress()">
            <input id="lat" type="text" />

            <input id="lng" type="text" />
        </div>


            <asp:Button ID="Button1" runat="server" 
                  Text="Button" EnableViewState="False" 
                  ViewStateMode="Disabled" OnClientClick="javascript:return codeAddress();"/>



          <div id="map-canvas"></div>
       </form>   
      </body>
    </html>

関数を呼び出したいcodeAddress。値を持つボタンであるhtmlボタンでこの関数を呼び出すと、正常Geocodeに動作します。しかし、ASP.Net ボタンでその関数を呼び出すと、「else」部分が実行され、結果が生成されません。

4

1 に答える 1

0

あなたがしたいことは、ジオコーディングコードを使用して緯度と経度を取得し、それらをポストバックすることだと思います。

1 つのボタンでクライアント側のコードを実行し、(同時に) ポストバックするのではなく、HTML ボタンをそのままにして、フィールドが設定されたら JavaScript コードからフォーム ポストを開始します。

            document.getElementById('lat').value = latlngstr.lat();
            document.getElementById('lng').value = latlngstr.lng();
            document.forms[0].submit();
于 2013-03-24T16:15:55.990 に答える