我有一个包含三个主要列的.sdf数据库:customer_name
,lat
和lon
。
我想遍历表的行并使用标记的信息。
问题是地图生成正常,但标记没有放在地图上。
这是我到目前为止所拥有的......
@{
var db = Database.Open("Contracts");
var query = "SELECT customer_name, lat, lon FROM Contracts ORDER BY customer_name";
}
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
$(document).ready(function () {
initalise();
});
function initalise() {
var mapOptions = {
center: new google.maps.LatLng(52.007227, -0.719798),
zoom: 200,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementId("map_canvas"), mapOptions);
</script>
@foreach(var row in db.Query(query)) {
<script type="text/javascript">
var mark = new google.maps.LatLng(lat, lon);
var marker = new google.maps.Marker({
position: mark,
map: map,
title: @row.cusomter_name
});
</script>
}
<div id="map_canvas" style="width: 640px; height: 480px;"></div>
数据库列的属性分别为nvarchar(100)
,float
,float
。
答案 0 :(得分:1)
您的javascript无效,是不是您收到了JS错误? map
变量是您的初始函数的本地变量(缺少结束}
)。因此,当您稍后尝试引用它时,它无法访问它。您正在使用<script> ... </script>
标记对函数进行严格嵌套。
请改为尝试:
<script type="text/javascript">
$(document).ready(function () {
initalise();
});
function initalise() {
var mapOptions = {
center: new google.maps.LatLng(52.007227, -0.719798),
zoom: 200,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementId("map_canvas"), mapOptions);
@foreach(var row in db.Query(query)) {
var mark = new google.maps.LatLng(@row.lat, @row.lon);
var marker = new google.maps.Marker({
position: mark,
map: map,
title: @row.customer_name
});
}
}
</script>