添加服务器端纬度/经度值到谷歌地图javascript
本文关键字:谷歌地图 javascript 经度 服务器端 纬度 添加 | 更新日期: 2023-09-27 17:55:01
我想在我的一个页面上添加一个谷歌地图。
在我的代码后面,我有一个地图的中心点,以及一个我想要映射的纬度/经度数组:
protected void Page_Load(object sender, EventArgs e)
{
Point center = new Point { latitude = 28.42693F, longitude = -81.4673F };
List<Point> points = new List<Point>();
points.Add(new Point { latitude = 28.43039F, longitude = -81.47186F });
points.Add(new Point { latitude = 28.36906F, longitude = -81.56063F });
Point[] pointArray = points.ToArray();
}
public class Point
{
public float latitude;
public float longitude;
}
在我的页面上,我有这个javascript:
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(28.42693, -81.4673), 13);
//map.setUIToDefault();
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
markerOptions = { icon: blueIcon };
var point = new GLatLng(28.43039, -81.47186);
map.addOverlay(new GMarker(point, markerOptions));
point = new GLatLng(28.36906, -81.56063);
map.addOverlay(new GMarker(point, markerOptions));
}
}
</script>
这些值现在被硬编码到javascript中进行测试,但我需要从代码后端获得动态值。我该怎么做呢?
一种快速而肮脏的方法可能是在代码后台创建一个字符串,该字符串创建一个由lat/long值组成的JavaScript数组。然后可以在. aspx中添加an并将其设置为字符串值。或者为你的点创建一个JSON表示。它适用于小型的一次性场景。所以你的JavaScript可能看起来像这样:
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
<asp:Literal id="litMapCenter" runat="server"/>
//map.setUIToDefault();
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
markerOptions = { icon: blueIcon };
<asp:Literal id="litMapPoints" runat="server"/>
}
}
</script>
在你的代码后面,然后用适当的JavaScript设置litMapPoints和litMapCenter。
您可以在
后面的代码中使用类似的内容ClientScript.RegisterStartupScript(this.getType(), "whateveryourkeyis", string.Format("longitude={0};", pointArray[0].longitude), true);
这样你只需要创建一个jscript变量'longitude',并用你的。net代码值初始化它。
(这是在飞行中写的,所以如果有错误请原谅:-))