ASP.NET和谷歌地图。单击按钮时添加标记

时间:2012-05-16 06:55:24

标签: asp.net google-maps

我正在开发一个ASP.NET项目,我正在使用Google Maps。我在页面加载时加载地图。然后单击按钮我想添加一些标记。我使用以下代码。

function LoadSecurity(locationList, message) {
    if (document.getElementById("map_canvas") != null && 
        document.getElementById("map_canvas") != "null") {

        map = new google.maps.Map(document.getElementById("map_canvas"), 
            myOptions);

        for (var i = 0; i < locationList.length; i++) {
            if ((i == 0) || (i == locationList.length - 1)) {
                var args = locationList[i].split(",");
                var location = new google.maps.LatLng(args[0], args[1])
                var marker = new google.maps.Marker({
                    position: location,
                    map: map
                });
                marker.setTitle(message[i]);
            }
        }
    }
}

我用一个按钮调用该函数,代码如下。

<asp:Button ID="Button1" runat="server" 
    OnClientClick="javascript: LoadSecurity('57.700034,11.930706','test')"
    Text="Button" />

但是没有用。有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

你在这里要求'i'处的元素,但你的locationList只是那个时候的一个字符串?

locationList[i].split(","); 

尝试将其更改为

locationList.split(","); 

但是你的代码中还有一些其他相当奇怪的东西...... 你的for循环从0到locationList的长度,但在那一点,locationList是一个字符串而不是一个数组。所以你的for循环从0到19 ......

如果你试图从你传递的那个字符串中获得2个坐标,请看下面的jsfiddle:http://jsfiddle.net/f3Lmh/

如果您尝试在该字符串中传递多个坐标,则必须稍微更改传递它们的方式,因此很容易看到哪个坐标属于谁。 我准备了另一个小jsfiddle:http://jsfiddle.net/f3Lmh/4/