-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

数组的第一个元素的索引为 0,而不是 1,因此data[1].formatted_address;您应该使用data[0].formatted_address;

于 2012-10-30T10:07:37.917 回答