Asp.net 我想把Gmap控件中的纬度和经度输入文本框
我尝试了以下方法,但不起作用Asp.net 我想把Gmap控件中的纬度和经度输入文本框,asp.net,javascript,google-maps,Asp.net,Javascript,Google Maps,我尝试了以下方法,但不起作用 var txtlat=document.getElementById('TextBox1').value=GMap1.getCenter().lat(); var txtlong=document.getElementById('TextBox2').value=GMap1.getCenter().lng(); 它给出一个JavaScript错误,因为“对象不支持此属性或方法” 我该怎么做 我真的需要帮助 谢谢大家! <%@ Page Language="C
var txtlat=document.getElementById('TextBox1').value=GMap1.getCenter().lat();
var txtlong=document.getElementById('TextBox2').value=GMap1.getCenter().lng();
它给出一个JavaScript错误,因为“对象不支持此属性或方法”
我该怎么做
我真的需要帮助
谢谢大家!
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication5._Default" %>
<%@ Register assembly="GMaps" namespace="Subgurim.Controles" tagprefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:GMap ID="GMap1" runat="server"
Key="ABQIAAAAs98ZVKM_IHFkRP_EavW_DhT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQGoS16N7wYnBPhgtjTxMaUVN58kA" />
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
<script type="text/javascript">
var txtlat=document.getElementById('TextBox1').value=GMap1.getCenter().lat();
var txtlong=document.getElementById('TextBox2').value=GMap1.getCenter().lng();
</script>
</form>
</body>
</html>
无标题页
var txtlat=document.getElementById('TextBox1')。value=GMap1.getCenter().lat();
var txtlong=document.getElementById('TextBox2')。value=GMap1.getCenter().lng();
是否确认从getCenter返回的值不为空?它应该是一个LatLng对象,但可能返回null。。。你确定中心已经设置好了吗?还有,GMap1是什么对象类型?如何创建该对象?第二次更新:除了更新的问题,服务器端文本框控件还有另一个问题。不能像您这样使用document.getElementById()
从JavaScript引用它们
您可以使用普通的HTML控件:
,或者必须使用类似于document.getElementById(“”)
的东西从JavaScript引用文本框
1st UPDATE:除注释外,下面的示例已更新,以返回鼠标单击位置的纬度/lng
您可能希望查看以下示例,这些示例经过测试可以正常工作: 使用:
谷歌地图获取中心()
var map=new google.maps.map(document.getElementById('map'){
缩放:2,
中心:新google.maps.LatLng(35.55,-25.75),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
google.maps.event.addListener(映射,'click',函数(事件){
if(事件时间){
document.getElementById('textbox1')。value=event.latLng.lat();
document.getElementById('textbox2')。value=event.latLng.lng();
}
});
使用:
谷歌地图获取中心()
VarMap=新的GMap2(document.getElementById(“map”);
var中心点=新玻璃(35.55,-25.75);
地图设置中心(中心点,2);
addListener(映射,“单击”,函数(覆盖,latlng){
if(latlng){
document.getElementById('textbox1')。value=latlng.lat();
document.getElementById('textbox2')。value=latlng.lng();
}
});
以上示例的屏幕截图:
我发现答案忘了在这里提及,所以答案很简单
Msg1
和Msg2
是DIV标签
protected string Gmap1_Click(object s, Subgurim.Controles.GAjaxServerEventArgs e)
{
return "document.getElementById('Msg1').innerHTML="
+ e.point.lat.ToString() + ";" + "document.getElementById('Msg2').innerHTML="
+ e.point.lng.ToString();
}
你能发布更多的代码,特别是GMap1是如何创建的吗?上面的文章展示了我是如何尝试这样做的。非常感谢。你好,布莱恩,对不起。我是这个谷歌地图环境的新手。我不能完全理解你在说什么。Gmap1是Gmap控制器的ID。我还没有解决这个问题。非常感谢。查看@Daniel的示例,你符合GMap控件的设置吗?你好,Daniel,我尝试了这个。页面加载得到35.55和-25.75。我想要的是将纬度和经度输入到文本框中,当用户点击地图时的一个点,以及为什么你在使用我不能简单地拖放我添加到工具箱中的Gmap控制器作为。我仍然有这个问题。谢谢大家!@chamara:更新了示例,给出了鼠标点击点的纬度/高度。。。至于
标记,我没有使用ASP.NET控件的经验,但是我想如果你让地图在你的网页上运行,你所做的是正确的。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps getCenter()</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false"
type="text/javascript"></script>
</head>
<body onunload="GUnload()">
<div id="map" style="width: 500px; height: 400px;"></div>
<input type="text" id="textbox1" />
<input type="text" id="textbox2" />
<script type="text/javascript">
var map = new GMap2(document.getElementById("map"));
var centerPoint = new GLatLng(35.55, -25.75);
map.setCenter(centerPoint, 2);
GEvent.addListener(map,"click", function(overlay, latlng) {
if (latlng) {
document.getElementById('textbox1').value = latlng.lat();
document.getElementById('textbox2').value = latlng.lng();
}
});
</script>
</body>
</html>
protected string Gmap1_Click(object s, Subgurim.Controles.GAjaxServerEventArgs e)
{
return "document.getElementById('Msg1').innerHTML="
+ e.point.lat.ToString() + ";" + "document.getElementById('Msg2').innerHTML="
+ e.point.lng.ToString();
}