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

时间:2011-07-16 12:00:33

标签: javascript asp.net google-maps google-maps-markers

我有一个带有按钮字段列的asp gridview,点击该按钮点击我需要通过点击行值(经度和纬度)在Google地图上添加一个点。我为此编写了一个javascript函数,我在O​​nClientClick上调用了该函数,但问题是我不知道如何将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); 
}

和我的asp代码(这里我没有gridview只是一个按钮,我希望在gridview RowCommand事件上分配隐藏的字段值。),

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="Button1" runat="server" Text="Button" 
            OnClientClick="addDoctorLocation()" onclick="Button1_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

请有人帮我解决这个问题。这个解决方案适用于我在javascript中硬编码长和纬度值。但是我想在用户点击gridview行按钮时传递它们。

2 个答案:

答案 0 :(得分:0)

您正在为每次点击创建一个新的google.maps.Map - 可能不是您想要做的。在页面加载时在其他位置创建地图,并使用您在那里指定的“mao”变量来添加标记。

如果这没有帮助,请发布有关您所看到的内容的更多信息 - 错误消息等

答案 1 :(得分:0)

感谢大家,我找到了解决方案。我在更新面板中添加了一个按钮,然后我在该按钮上调用了我的javascript函数,单击此处是按钮单击代码,

        string lat = "-25.363882";
        string longt = "131.044922";

        ScriptManager.RegisterStartupScript(this,this.GetType(),
           "addDoctorLocation",
           "addDoctorLocation(" + lat + "," + longt + ")", true);

addDoctorLocation()是我的javascript函数,需要很长的时间,并在我的地图上添加一个点。