在我的代码中,我加载地图,然后在搜索完成后填充表格,然后地图使用该数据绘制出标记。无论我尝试什么,我都无法获得标记。
var map = null;
var geocoder = null;
var point = null;
function DoIt() {
map = new google.maps.Map(document.getElementById("map"));
map.setCenter(new GLatLng(28.55074, -82.42082), 10);
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addControl(new GMapTypeControl());
// Function for handling zooms
GEvent.addListener(map, "zoomend", function (oldzoomlevel, zoomlevel) {
document.getElementById('tbZoomLevel').value = zoomlevel;
});
GEvent.addListener(map, "dragend", function (overlay, point) {
var center = map.getCenter();
document.getElementById("tbX").value = center.lat();
document.getElementById("tbY").value = center.lng();
});
geocoder = new GClientGeocoder();
<%= mapVolunteers() %>
}
然后我从数据表中提取数据,返回ID,x y坐标和标记信息,如下所示。
function createMarker(id, point, info) {
var marker = new google.maps.Marker(point,{ title: "Id: " + id, label: "test" });
GEvent.addListener(marker, "click", function () {
marker.openInfoWindowHtml(info);
});
GEvent.addListener(marker, "mouseover", function () {
try {
document.getElementById(marker.idNumber).style.fontSize = '8pt';
document.getElementById(marker.idNumber).style.textDecoration = 'underline';
document.getElementById(marker.idNumber).style.fontWeight = 'Bold';
}
catch (e)
{ }
});
GEvent.addListener(marker, "mouseout", function () {
try {
document.getElementById(marker.idNumber).style.fontSize = '8pt';
document.getElementById(marker.idNumber).style.textDecoration = '';
document.getElementById(marker.idNumber).style.fontWeight = '';
}
catch (e)
{ }
});
return marker;
}
无论我尝试什么标签都不行。目前我的地图除了标签之外还以我想要的方式工作。希望这是一个简单的解决方案,不需要过多地重写我现有的代码。我可以做些什么来获得每个图标的标签或我缺少什么?我希望改变是在api方面,而不是第三方js。
答案 0 :(得分:2)
我可以看到的一件事是,你的标记实例化程度与平时略有不同。如果您使用的是Maps Javascript API,则通常会这样做:
var myLatLng = {lat: -25.363, lng: 131.044};
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'title',
label: 'A'
});
以下是标记的文档:https://developers.google.com/maps/documentation/javascript/3.exp/reference#Marker
希望有所帮助。