从geoloc设置标记与文本框中的地址

时间:2012-08-02 12:59:54

标签: javascript html google-maps

我有这部分代码。 我想放置标记,当文本框中的文本将改变时 - 它与函数changeValue()一起使用 - 获取新地址。

然后,当地址变量发生变化时,我想放置这个标记。怎么做?

我尝试使用下面的代码,但是我收到此错误: Error: ReferenceError: changeValue is not defined 怎么了?

     (...)
    <asp:TextBox Style="width: 300px;" runat="server" ID="tbStreet" onchange="changeValue()"></asp:TextBox>
     (...) // more 5 textboxes

   <script type='text/javascript'>
          (...) // 2 long string arrays.

        var address;
        function mapaStart() {
            var wspolrzedne = new google.maps.LatLng(52.22105994970536, 19.22609921875007);
            var opcjeMapy = {
                zoom: 5,
                center: wspolrzedne,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("mapka"), opcjeMapy);


        function changeValue() {

            var ulica;
            var miasto;
            var woj1;
            var panstwo1;
            ulica = document.getElementById("<%=tbStreet.ClientID%>").value;
            miasto = document.getElementById("<%=tbCity.ClientID%>").value;
            woj1 = woj[document.getElementById("<%=ddlProvince.ClientID%>").value];
            panstwo1 = panstwa[document.getElementById("<%=ddlCountry.ClientID%>").value];
            address = panstwo1 + ", " + woj1 + ", " + miasto + ", " + ulica;
            alert(address);
        }   
            var geokoder = new google.maps.Geocoder();
            map.setCenter(address.geometry.location);
            var marker = new google.maps.Marker(
                {
                    map: map,
                    position: address.geometry.location,
                }
            );

        } 

    </script>

1 个答案:

答案 0 :(得分:0)

您的changeValue函数是mapaStart函数的本地函数。在HTML click / onchange侦听器运行的全局上下文中无法访问它。要使其全局化,请将其移到mapaStart函数之外。