谷歌地图标记管理器V3

时间:2011-10-19 09:30:52

标签: javascript google-maps google-maps-api-3 google-maps-markers

我尝试使用谷歌地图标记管理器,但我似乎每次都打砖墙,我按照如何在谷歌文档上创建markermanager的教程,但似乎没有什么对我有用,这是一个问题我的代码是如何编写的?这里没有想法,目前我已经在地图上设置了一个基于latlng的标记。

有人可以尝试实施教程代码并找到适合我的解决方案吗?它让我很生气。

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<div id="map_canvas" style="width:500px; height:500px;"></div>

   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

    @*<script src="../../Scripts/markermanager.js" type="text/javascript"></script>*@

    <script type="text/javascript">

        function initialize() {
            var latlng = new google.maps.LatLng(-34.397, 150.644);
            var myOptions = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP // map view, can be set to satellite, street, roadview, aerialview
            };
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

            var marker = new google.maps.Marker({
                position: latlng,
                map: map,
                animation: google.maps.Animation.DROP,
                title: "Uluru (Ayers Rock)"
            });

            marker.setMap(map);  
        }

        $(document).ready(function () {
            initialize();
        });

    </script>

1 个答案:

答案 0 :(得分:15)

这是一个让你入门的例子:

var map;
var mgr;

function initialize() {
  var myOptions = {
    zoom: 8,
    center: new google.maps.LatLng(-34.397, 150.644),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  mgr = new MarkerManager(map);
  google.maps.event.addListener(mgr, "loaded", function() {
    for (var i = 0; i < 1000; i++) {
      var marker = new google.maps.Marker({
        position: new google.maps.LatLng(Math.random() * 180 - 90, Math.random() * 360 - 180),
        title: "Random marker #" + i
      });
      mgr.addMarker(marker, 0);
    }
    mgr.refresh();
  });
}
google.maps.event.addDomListener(window, "load", initialize);
<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js"></script>

<div id="map_canvas" style="height: 400px;"></div>
<p>Pan or zoom out to see markers</p>

请注意,在创建标记时,我没有指定map: mapmarker.setMap(map)。相反,标记会添加到标记管理器中,当您调用markermanager.refresh()时,标记管理器会将它们添加到地图中。

另请注意,我已在缩放级别0上添加了所有标记。理想情况下,您应该在较低缩放级别加载少量标记,在较高缩放级别加载更多标记。