我测试了Google Maps Java示例的示例,它运行正常,但我如何从VB Code Behind传递Lat和Long?
这是一个例子:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Map.aspx.vb" Inherits="Learning.Map" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function initMap() {
var uluru = { lat: 52.90560483, lng: -1.36920258 };
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
<style>
#map {
position: relative;
height: 500px;
width: 100%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<h3>My Google Maps Demo</h3>
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=ABCD&callback=initMap">
</script>
</form>
</body>
</html>
我在VB Code Behind中试过这个:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "initMap", "lat: 52.90560483, lng: -1.36920258")
End Sub
并将功能调整为:
<script>
function initMap(myvar) {
var uluru = myvar;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
唯一显示的是灰色框。任何人都可以帮助并告诉我如何将Lat和Long传递给函数甚至更简单的代码隐藏方式?原因是,我将从SQLExpress服务器调用Lat和Long。
非常感谢。
答案 0 :(得分:1)
假设您使用ASP.NET
而不使用MVC
最简单的方法是,您可以将 lat 和 lon 放入代码后面的变量中,并将它们传递给隐藏字段(并从javascript或jquery获取)或者只是在页面中打印
代码背后:
protected string _lat;
protected string _lng;
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_lat = "52.90560483";
_lng = "-1.36920258";
End Sub
页:
<script>
function initMap(myvar) {
var uluru = { lat: <%= _lat %>, lng: <%= _lng %> };
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
您的功能失败的原因是因为您将 lat 和 lng 一起作为字符串传递,但Google地图需要将其作为对象数组。