我有一个新手问题。 如果在我的asp.net应用程序中,我需要查询数据库并获取一组Google标记以显示在地图上。我是Web开发的新手,所以我不确定如何将数据从asp.net传递给JavaScript。它是通过从JavaScript调用的WebService完成的,还是有另一种方法可以做到这一点?我可能误解了一些主要概念。同样,有没有办法将数据从JavaScript传递到asp.net应用程序(例如,某些东西不在谷歌地图上,数据应该存储在后端的数据库中)。如果这太基础,任何链接将不胜感激。谢谢 !
答案 0 :(得分:2)
嗯,我就是这样做的(仅供参考,这很大程度上依赖于 JQuery javascript库):
<div>
。$.ajax
调用,该服务返回表示标记数据的JSON。以下是一些代码的简要说明:
... your web page
<script>
$(document.)ready(function() {
$.ajax(
url: "mapquery.asmx",
async: true,
dataType: json,
success: function(data)
{
var map = new GMap2(document.getElementById("map_div"));
for (int i = 0; i < data.length; i++)
{
var point = new GLatLng(data.results[i].lat,
data.results[i].lng);
var marker = createMarker(point, data.results[i].desc,
data.results[i].type);
map.addOverlay(marker);
}
}
);
});
</script>
示例json从mapquery.asmx返回:
results = [ {
lat: 41.765,
lng: 80.572
desc: "My house",
type: "X"
},
{
lat: 42.765,
lng: 81.572
desc: "Friend's house",
type: "X"
}
]
答案 1 :(得分:0)
您可以使用以下内容:
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(43.104135, -77.884455), 6);
// Change this depending on the name of your PHP file
GDownloadUrl("generateXML.aspx", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var desc = htmlEntities(markers[i].getAttribute("desc"));
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, desc, type);
map.addOverlay(marker);
}
});
}
在generateXML.aspx中,发送一个XML响应,它应该像魅力一样。