0

我是第一次使用谷歌地图 API,因此遇到的困难很少,需要帮助。我需要找到几个点之间的距离并将它们保存起来以备后用。以下是我面临的确切情况和问题。

我正在使用必须找到距离的纬度、经度数据。

设想:

  • 查找点 A 和点 1、2、3 之间的距离。
  • 查找点 B 和点 1、2、3 之间的距离。
  • 查找点 C 和点 1、2、3 之间的距离。

我在 C# 代码中需要这个距离,目前我的实现如下 Javascript,它调用 Google Map API 驻留在 aspx 中。我使用下面的代码从 c# 调用这个 javascript

ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(this.GetType(), "ValError", "testDistance(lat1,long1,lat2,long2)", true);

我的 testDistance() 方法是用 javascript 编写的,它给了我正确的道路距离。

问题: 在服务器端恢复距离。我正在使用隐藏变量来保存距离并将其返回服务器端,但问题是,计算距离的调用必须在 c# 的 for 循环中执行,因为要计算和保存各种距离。

但我无法这样做,因为隐藏变量仅在第一次调用时设置,而在后续调用中派生的所有距离值都将丢失。

在javascript中,一旦我获得距离,我将其保存到如下隐藏值。

var hiddist= document.getElementById("hidDistance");
hiddist.value=hiddist.value+distance;

请帮助并建议如何做到这一点?

4

1 回答 1

0

我知道你在这方面的挣扎。我总是使用 jquery ajax post 来调用我在 C# 项目中拥有的 web 服务,以将数据从客户端传递回代码隐藏。请查看此网页,这显示了如何执行此操作的一个很好的示例,但可能有数百个。从我所见,这可能是处理这种情况的更好方法之一,这也是我创建所有谷歌地图页面的方式。

http://dotnetguts.blogspot.com/2012/01/jquery-ajax-examples-by-calling-aspnet.html

我要注意的另一件事是,我通常在代码隐藏中创建类,然后将它们全部连接在一起。(又名一个类的多个类,也许一个类是一个类的列表)然后当我通过类似的东西将它们传递给客户端时。:

return parentClass.toArray();

执行上述操作确实可以让您在客户端和代码隐藏之间处理/传递更多数据,并且以更统一的方式执行此操作,而不是传递十亿个变量的字符串。(附带说明一下,您实际上可以通过这种方式在客户端和代码隐藏之间传递太多数据,我遇到过这种情况,但我现在不用担心)HTH

于 2012-09-10T23:28:07.170 回答