Google maps 在谷歌地图上使用文本而不是标记
我正在创建一个带有数百个标记和信息窗口的地图,每个标记和信息窗口都与之配套。我使用自定义图标而不是默认图标和marker clusterer来加速加载 在每个信息窗口中都有一个指向某篇文章的链接。为了打开该文章,涉及两个操作:Google maps 在谷歌地图上使用文本而不是标记,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我正在创建一个带有数百个标记和信息窗口的地图,每个标记和信息窗口都与之配套。我使用自定义图标而不是默认图标和marker clusterer来加速加载 在每个信息窗口中都有一个指向某篇文章的链接。为了打开该文章,涉及两个操作: 你必须点击标记 信息窗口打开,你会看到文章的名称,你必须点击名称(这是一个链接)才能打开文章 我想避免一次点击。有没有可能有一个文本标记(而不是一个自定义图标)-你会看到文本“article 1”,当你点击它时,“article 1”打开 以下是我代码的一部分: <
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
<script type="text/javascript">
var map = null;
var markerArray = []; //create a global array to store markers
var myPoints = [
[1, 1, 'Article 1'],
[2, 2, 'Article 2'],
[3, 3, 'Article 3'],
];
//create global array to store points
function initialize() {
var myOptions = {
zoom: 5,
center: new google.maps.LatLng(2, 2),
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var mcOptions = {
gridSize: 10,
maxZoom: 15
};
var mc = new MarkerClusterer(map, [], mcOptions);
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
// Add markers to the map
// Set up markers based on the number of elements within the myPoints array
for(var i=0; i<myPoints.length; i++){
createMarker(new google.maps.LatLng(myPoints[i][0], myPoints[i][1]), myPoints[i][2]);
}
mc.addMarkers(markerArray , true);
}
var infowindow = new google.maps.InfoWindow({
size: new google.maps.Size(150, 50)
});
var image = '/321.png';
function createMarker(latlng, html) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon:image,
zIndex: Math.round(latlng.lat() * -100000) << 5
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
markerArray.push(marker); //push local var marker into global array
}
window.onload = initialize;
</script>
</head>
var-map=null;
var-markerary=[]//创建全局数组以存储标记
var myPoints=[
[1,1,“第1条”],
[2,2,‘第2条’],
[3,3,‘第3条’],
];
//创建全局数组以存储点
函数初始化(){
变量myOptions={
缩放:5,
中心:新google.maps.LatLng(2,2),
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
},
导航控制:对,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
变量mcOptions={
网格大小:10,
最大缩放:15
};
var mc=新的MarkerClusterer(映射,[],mcOptions);
google.maps.event.addListener(映射,'click',函数(){
infowindow.close();
});
//向地图添加标记
//根据myPoints数组中的元素数设置标记
对于(var i=0;i用文本替换标记是不可能的,至少到目前为止,谷歌地图团队可能在不久的将来添加该功能
为了避免单击两次的问题,您可以做的是当用户将鼠标放在标记上时显示信息窗口,当用户单击标记时,他将被引导打开文章/页面
您可以查看“事件”部分以了解有关处理marker事件的更多信息。您必须向下滚动一点以查看“事件”部分
希望这有帮助