Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP谷歌地图添加标记按钮点击_Javascript_Asp.net_Google Maps_Google Maps Markers - Fatal编程技术网

Javascript ASP谷歌地图添加标记按钮点击

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()

我有一个asp gridview,按钮上有一个button field列。单击该按钮,我需要通过获取单击的行值(经度和纬度)在Google地图上添加一个点。我为此编写了一个javascript函数,并在OnClientClick上调用了该函数,但问题是我不知道如何向该函数传递long和latt。我曾尝试使用hiddenfields,但新的google.maps.LatLng()采用了双值,因此无法工作。这是我的javascript函数

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);