Google maps 在谷歌地图上使用文本而不是标记

Google maps 在谷歌地图上使用文本而不是标记,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我正在创建一个带有数百个标记和信息窗口的地图,每个标记和信息窗口都与之配套。我使用自定义图标而不是默认图标和marker clusterer来加速加载 在每个信息窗口中都有一个指向某篇文章的链接。为了打开该文章,涉及两个操作: 你必须点击标记 信息窗口打开,你会看到文章的名称,你必须点击名称(这是一个链接)才能打开文章 我想避免一次点击。有没有可能有一个文本标记(而不是一个自定义图标)-你会看到文本“article 1”,当你点击它时,“article 1”打开 以下是我代码的一部分: <

我正在创建一个带有数百个标记和信息窗口的地图,每个标记和信息窗口都与之配套。我使用自定义图标而不是默认图标和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事件的更多信息。您必须向下滚动一点以查看“事件”部分

    希望这有帮助