Javascript ASP谷歌地图添加标记按钮点击
我有一个asp gridview,按钮上有一个button field列。单击该按钮,我需要通过获取单击的行值(经度和纬度)在Google地图上添加一个点。我为此编写了一个javascript函数,并在OnClientClick上调用了该函数,但问题是我不知道如何向该函数传递long和latt。我曾尝试使用hiddenfields,但新的google.maps.LatLng()采用了双值,因此无法工作。这是我的javascript函数Javascript ASP谷歌地图添加标记按钮点击,javascript,asp.net,google-maps,google-maps-markers,Javascript,Asp.net,Google Maps,Google Maps Markers,我有一个asp gridview,按钮上有一个button field列。单击该按钮,我需要通过获取单击的行值(经度和纬度)在Google地图上添加一个点。我为此编写了一个javascript函数,并在OnClientClick上调用了该函数,但问题是我不知道如何向该函数传递long和latt。我曾尝试使用hiddenfields,但新的google.maps.LatLng()采用了双值,因此无法工作。这是我的javascript函数 function addDoctorLocation()
function addDoctorLocation()
{
var lat = document.getElementById('<%= hfLong.ClientID %>').value;
var longt = document.getElementById('<%= hfLong.ClientID %>').value;
var myLatlng = new google.maps.LatLng(parseFloat(document.getElementById('<%= hfLong.ClientID %>').value), parseFloat(document.getElementById('<%= hfLong.ClientID %>').value));
var myOptions = {
zoom: 10,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"
});
// To add the marker to the map, call setMap();
marker.setMap(map);
}
函数addDoctorLocation()
{
var lat=document.getElementById(“”).value;
var lont=document.getElementById(“”).value;
var mylatng=new google.maps.LatLng(parseFloat(document.getElementById(“”).value),parseFloat(document.getElementById(“”).value));
变量myOptions={
缩放:10,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var marker=new google.maps.marker({
职位:myLatlng,
标题:“你好,世界!”
});
//要将标记添加到映射,请调用setMap();
marker.setMap(map);
}
还有我的asp代码(这里我没有gridview,只是一个按钮,我希望在gridview RowCommand事件上分配隐藏字段值。)
请有人帮我解决这个问题。当我在javascript中硬编码long和latitude值时,这个解决方案会起作用。但我想在用户单击gridview行按钮时传递它们。每次单击都会创建一个新的google.maps.Map,这可能不是您想要做的。当页面加载时,在别处创建地图,并使用分配给那里的“mao”变量添加标记
如果这没有帮助,请发布更多关于您看到的内容的信息-错误消息等。谢谢大家,我找到了解决方案。我在更新面板中添加了一个按钮,然后我在该按钮上调用了javascript函数单击这里是按钮单击代码
string lat = "-25.363882";
string longt = "131.044922";
ScriptManager.RegisterStartupScript(this,this.GetType(),
"addDoctorLocation",
"addDoctorLocation(" + lat + "," + longt + ")", true);
addDoctorLocation()是我的javascript函数,它需要很长时间,latt并在地图上添加一个点。这可能与您的问题无关,但是我注意到你对lat和long都使用了hfLong的值。是的,Ray,我为页面加载上的两个隐藏字段赋值只是为了测试,这里我只添加了一个按钮,不是gridview,我希望在gridview RowCommand事件中分配这些值。你只使用了一个隐藏字段的值无论是横向还是纵向。这不会把一个点放在地图上你认为应该去的地方。对不起,雷,我是谷歌地图的新手,所以请你解释一下mao变量是什么意思。启动“var map=…”的行不应该在你的点击处理程序中执行。当页面加载时,它应该只执行一次。我已经全局声明了var map,并在页面加载时创建了map obj并分配给该变量。但在那之后,当我单击按钮时,什么也没有发生。我建议您在单击处理程序代码中添加一些“alert()”,以确保它被调用,然后确保您使用的值实际上是您认为的值。
string lat = "-25.363882";
string longt = "131.044922";
ScriptManager.RegisterStartupScript(this,this.GetType(),
"addDoctorLocation",
"addDoctorLocation(" + lat + "," + longt + ")", true);