显示Google地图标记上的数字

时间:2012-02-23 05:51:11

标签: google-maps

全部, 我有以下代码在我的地图上显示我的标记:

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script  type="text/javascript">
function addLoadEvent(func) { 
var oldonload = window.onload; 
if (typeof window.onload != 'function'){ 
    window.onload = func
} else { 
    window.onload = function() {
        oldonload();
        func();
    }
}
}

var map,
    infowin=new google.maps.InfoWindow({content:'moin'});
function loadMap() 
{
  map = new google.maps.Map(
    document.getElementById('map'),
    {   
      zoom: 12,
      mapTypeId:google.maps.MapTypeId.ROADMAP,
      center:new google.maps.LatLng(<?php echo $_SESSION['pav_event_latitude']; ?>, 
                                    <?php echo $_SESSION['pav_event_longitude']; ?>)
    });

  addPoints(myStores);
}

function addPoints( points )
{  
  var bounds=new google.maps.LatLngBounds();
  for ( var p = 0; p < points.length; ++p )
  {
    var pointData = points[p];
    if ( pointData == null ) {map.fitBounds(bounds);return; }
    var point = new google.maps.LatLng( pointData.latitude, pointData.longitude );
    bounds.union(new google.maps.LatLngBounds(point));
    createMarker( point,  pointData.html );
  }
  map.fitBounds(bounds);

}

function createMarker(point,  popuphtml) 
{
  var popuphtml = "<div id=\"popup\">" + popuphtml + "<\/div>";
  var marker = new google.maps.Marker(
    {
      position:point,
      map:map
    }
  );
  google.maps.event.addListener(marker, 'click', function() {
      infowin.setContent(popuphtml)
      infowin.open(map,marker);
    });

}
function Store( lat, long, text )
{
    this.latitude = lat;
    this.longitude = long;
    this.html = text;
}

var myStores = [<?php echo $jsData;?>, null];
addLoadEvent(loadMap);
</script>

这很有效。但是,我试图在标记上添加一个数字,以便人们可以将我网站上的数字与Google地图中的标记相关联。如何在标记之上创建数字(在实际图标之上,而不是在信息气泡中)?

任何帮助都会非常感激!提前谢谢!

2 个答案:

答案 0 :(得分:7)

编辑:此API现已弃用,我不再推荐此答案。


您可以使用Google的图表API生成图片图片。

请参阅:http://code.google.com/apis/chart/infographics/docs/dynamic_icons.html#pins

它将根据您指定的参数制作并返回标记的图像。示例用法是:https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld=2|FF776B|000000

要将其实施到您的Google地图中,可将其添加到新的Marker()代码中:

var number = 2; // or whatever you want to do here
var marker = new google.maps.Marker(
    {
        position:point,
        map:map,
        icon:'https://chart.googleapis.com/chart?chst=d_map_pin_letter&chld='+number+'|FF776B|000000',
        shadow:'https://chart.googleapis.com/chart?chst=d_map_pin_shadow'
    }
);

答案 1 :(得分:1)

Here是与Rick描述的服务类似的服务 - 但仍处于活动状态,您可以上传自己的标记图片。