我正在开发一个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" />
但是没有用。有什么帮助吗?
答案 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/