C# 谷歌地图API v3 doen';不回答
我是新来的。 我正在尝试制作一个应用程序,使用谷歌地图API计算两个地址之间的距离和驾驶时间 我的问题是google DirectionService()似乎没有响应。我想不出来。我已经想了一个星期了 我希望你们能帮忙。 问题似乎出在gmapApi.js中C# 谷歌地图API v3 doen';不回答,c#,javascript,asp.net,C#,Javascript,Asp.net,我是新来的。 我正在尝试制作一个应用程序,使用谷歌地图API计算两个地址之间的距离和驾驶时间 我的问题是google DirectionService()似乎没有响应。我想不出来。我已经想了一个星期了 我希望你们能帮忙。 问题似乎出在gmapApi.js中 function showLocation(orig, dist) { var directionService = new google.maps.DirectionsService(); var t = ""; var request =
function showLocation(orig, dist) {
var directionService = new google.maps.DirectionsService();
var t = "";
var request = {
origin: orig,
destination: dist,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionService.route(request, function (response, status) {
if (status != google.maps.DirectionsStatus.OK) {
alert(status + " \nreq. failed.");
}
else {
t = request.origin + ';' + request.destination + ';' + response.routes[0].legs[0].distance.value + ';' + response.routes[0].legs[0].duration.value;
}
});
return t;
}
这是我的代码。Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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></title>
<script type="text/javascript">
function postbackObj() {
var orig = document.getElementById('<%= txbOrigin.ClientID %>').value;
var dist = document.getElementById('<%= txbDestination.ClientID %>').value;
var temp = showLocation(orig, dist);
__doPostBack('gmAPIObj',temp);
}
</script>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript">< /script>
<script type="text/javascript" src="gmapApi.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txbOrigin" Text="" runat="server" />
<asp:TextBox ID="txbDestination" Text="" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Search" OnClientClick="postbackObj()"/>
<p>
< asp:Label runat="server" ID="lblPrint" />
</p>
</div>
</form>
</body>
</html>
directionService.route(请求,函数(响应,状态)中的响应变量为null,状态变量为emptystring
我已尝试更改为无锁。我已尝试将标签放置在无锁的body标签中
呈现的html代码
<!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><title>
</title>
<script type="text/javascript">
function postbackObj() {
var orig = document.getElementById('txbOrigin').value;
var dist = document.getElementById('txbDestination').value;
var temp = showLocation(orig, dist);
__doPostBack('gmAPIObj',temp);
}
</script>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript" src="gmapApi.js"></script>
</head>
<body>
<form method="post" action="Default.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MjMyMzMwNTZkZHxi8IJlhy7bL8nAZqZfL2Vh4Yr8uF80ja6jX9Ypc87B" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div class="aspNetHidden">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBALsorucDwLTmobsAwK0weWLAwLCi9reA32PxME86E6mQhRTgBkF7cdktbiURIpf/IzKvAs5PHwI" />
</div>
<div>
<input name="txbOrigin" type="text" value="tilst" id="txbOrigin" />
<input name="txbDestination" type="text" value="aarhus" id="txbDestination" />
<input type="submit" name="btnSubmit" value="Search" onclick="postbackObj();" id="btnSubmit" />
<p>
<span id="lblPrint"></span>
</p>
</div>
</form>
</body>
</html>
函数postbackObj(){
var orig=document.getElementById('txbOrigin')。值;
var dist=document.getElementById('txbDestination')。值;
var temp=显示位置(起始位置、距离);
__doPostBack('gmAPIObj',temp);
}
//
提前感谢。请求directionService是一个异步过程,调用
directionService.route()
不会修改函数showLocation
中的变量t
改为从directionService.route()的成功回调中调用\uu doPostBack('gmAPIObj',t)
你好,莫勒博士。我已将方法更改为directionService.route(请求、函数(响应、状态){if(状态!=google.maps.directionStatus.OK){alert(状态+“\nreq.failed”);}else{var t=request.origin+';t+=request.destination+';t+=response.routes[0]。legs[0]。distance.value+';t+=response.routes[0]。legs[0]。duration.value;u doPostBack('gmAPIObj',t);});但问题是相同的。响应为空:-(我非常确定响应不能为null,因为状态为OK,所以响应必须是有效的DirectionResult。我还测试了我的建议,它运行良好。当DirectionService不发送任何响应时,route()的回调不会被执行。现在我在这个项目上又花了一周时间。我也尝试过你的解决方案,但没有锁定。我在3台服务器上用chrome、IE9和firfox 10进行了尝试。当我在这些浏览器上调试时,状态是否为“”(空字符串),响应为“NOTHING”,调试器不会说它是未定义的,也不会说它是空的。我在一个直接的HTML页面上尝试了这个jacascript,它的效果非常好。我不知道还有什么要做的。:-(当你发布一个链接到一个不成功的尝试时,我可能会看到哪里出了问题。
function postbackObj() {
var orig = document.getElementById('txbOrigin').value;
var dist = document.getElementById('txbDestination').value;
showLocation(orig, dist);
}
//-----
function showLocation(orig, dist) {
var directionService = new google.maps.DirectionsService();
var t = "";
var request = {
origin: orig,
destination: dist,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionService.route(request, function (response, status) {
if (status != google.maps.DirectionsStatus.OK) {
alert(status + " \nreq. failed.");
}
else {
t = request.origin + ';' + request.destination + ';' + response.routes[0].legs[0].distance.value + ';' + response.routes[0].legs[0].duration.value;
__doPostBack('gmAPIObj',t);
}
});
}