C# 如何在现有地图上创建静态标记?
嗨,我有一个datatable,我使用了JavaScriptSerializerC# 如何在现有地图上创建静态标记?,c#,javascript,asp.net,google-maps-api-3,google-maps-markers,C#,Javascript,Asp.net,Google Maps Api 3,Google Maps Markers,嗨,我有一个datatable,我使用了JavaScriptSerializer 公共字符串分支() { DataTable dt=新的DataTable(); 使用(SqlConnection con=newsqlconnection(“数据源=localhost;初始目录=DB;用户ID=sa;密码=”)) { 新建SqlCommand(“选择title=BranchName,lat=lat,lng=lng,city=city,branchhid=branchhid 从经销商处获得,其中纬
公共字符串分支()
{
DataTable dt=新的DataTable();
使用(SqlConnection con=newsqlconnection(“数据源=localhost;初始目录=DB;用户ID=sa;密码=”))
{
新建SqlCommand(“选择title=BranchName,lat=lat,lng=lng,city=city,branchhid=branchhid
从经销商处获得,其中纬度>30英寸(con))
con.Open();
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
System.Web.Script.Serialization.JavaScriptSerializer serializer=新建
System.Web.Script.Serialization.JavaScriptSerializer();
列表行=新列表();
字典行;
foreach(数据行dr在dt.行中)
{
行=新字典();
foreach(dt.列中的数据列列列)
{
行添加(列名称,dr[col]);
}
行。添加(行);
}
返回序列化程序。序列化(行);
}
}
}
Aspx:
我使用这个数据表创建了标记
var markers=JSON.parse(“”);
变量映射选项={
中心:新建google.maps.LatLng(标记[0].lat,标记[0].lng),
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var infoWindow=new google.maps.infoWindow();
var map=new google.maps.map(document.getElementById(“map_canvas”),mapOptions);
对于(i=0;i
到这里之前我没有任何问题。我的地图正在工作
但我想在这张地图上添加一些静态标记
例如
title=XYZ,lat=34.125444 lng:42.122121,branchhid=12345,image=Images/branchXYZ.png
title=ABC,lat=32.125444 lng:49.122121,BranchID=67676,image=Images/branchABC.png
title=DEF,lat=31.125444 lng:47.122121,BranchID=3434,image=Images/branchDEF.png
title=GFH,lat=34.125444 lng:42.122121,BranchID=343434,image=Images/branchGFH.png
我该怎么做 你已经准备好了你需要的大部分东西。只需使用这些标记的新数组重复循环即可。或者创建第二个循环,该循环执行类似的操作,但根据这些操作的数据,其操作略有不同。e、 g
var staticMarkers = [
{title:"XYZ", lat:34.125444, lng:42.122121, BranchID:12345, image:"Images/branchXYZ.png"},
{title:"ABC", lat:32.125444, lng:49.122121, BranchID:67676, image:"Images/branchABC.png"},
{title:"DEF", lat:31.125444, lng:47.122121, BranchID:3434, image:"Images/branchDEF.png"},
{title:"GFH", lat:34.125444, lng:42.122121, BranchID:343434, image:"Images/branchGFH.png"}
];
for (i = 0; i < staticMarkers.length; i++) {
var data = staticMarkers[i];
var image = data.image;
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: data.title,
icon: image,
});
(function (marker, data)
{
google.maps.event.addListener(marker, "click", function (e) {
// you don't have any 'description', so i'm assuming you don't need the infowindow
//infoWindow.setContent(data.description);
//infoWindow.open(map, marker);
window.location = "Braches.aspx?DI=" + data.BranchID;
});
})(marker, data);
}
var staticMarkers=[
{标题:“XYZ”,lat:34.125444,lng:42.122121,BranchID:12345,图片:“Images/branchXYZ.png”},
{标题:“ABC”,lat:32.125444,lng:49.122121,BranchID:67676,图片:“Images/branchABC.png”},
{标题:“DEF”,lat:31.125444,lng:47.122121,BranchID:3434,图片:“Images/branchDEF.png”},
{标题:“GFH”,lat:34.125444,lng:42.122121,BranchID:343434,图片:“Images/branchGFH.png”}
];
对于(i=0;i
这对我来说是个很好的答案。你的答案解决了。非常感谢邓肯
<body onload="initialize()">
<script type="text/javascript">
var markers = JSON.parse('<%=Branches() %>');
var mapOptions = {
center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
for (i = 0; i < markers.length; i++) {
var data = markers[i]
var image = '/Images/branches.png';
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: data.title + " : " + data.city,
icon: image,
}
);
(function (marker, data)
{
google.maps.event.addListener(marker, "click", function (e) {
infoWindow.setContent(data.description);
infoWindow.open(map, marker);
window.location = "Braches.aspx?DI=" + data.BranchID;
icon: InitIcon
});
})(marker, data);
}
var staticMarkers = [
{title:"XYZ", lat:34.125444, lng:42.122121, BranchID:12345, image:"Images/branchXYZ.png"},
{title:"ABC", lat:32.125444, lng:49.122121, BranchID:67676, image:"Images/branchABC.png"},
{title:"DEF", lat:31.125444, lng:47.122121, BranchID:3434, image:"Images/branchDEF.png"},
{title:"GFH", lat:34.125444, lng:42.122121, BranchID:343434, image:"Images/branchGFH.png"}
];
for (i = 0; i < staticMarkers.length; i++) {
var data = staticMarkers[i];
var image = data.image;
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: data.title,
icon: image,
});
(function (marker, data)
{
google.maps.event.addListener(marker, "click", function (e) {
// you don't have any 'description', so i'm assuming you don't need the infowindow
//infoWindow.setContent(data.description);
//infoWindow.open(map, marker);
window.location = "Braches.aspx?DI=" + data.BranchID;
});
})(marker, data);
}