1

ページに複数のマーカーを表示するリピーターを持つasp.net Webフォームページがあります。マーカーをクラスター化したいのですが、オンラインで見つかったいくつかの例に従いましたが、これまでのところ成功していません。これは私が持っているものです:

  1. html マークアップ:


   var markers = [
        <asp:Repeater ID="rptMarkers" runat="server">
        <ItemTemplate>
                 {
                     "title": '<%# Eval("Name") %>',
                     "lat": '<%# Eval("Latitude") %>',
                     "lng": '<%# Eval("Longitude") %>',
                     "description": '<%# Eval("Name") %>'
                 }
    </ItemTemplate>
    <SeparatorTemplate>
        ,
    </SeparatorTemplate>
    </asp:Repeater>
        ];
        var mapOptions = {
            center: new google.maps.LatLng(43.648399, -79.485703),
            zoom: 8,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map  = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
        var markerCluster = new MarkerClusterer(map, markers, mapOptions );
    </script>
    <script type="text/javascript">

        window.onload = function () {
            var mapOptions = {
                center: new google.maps.LatLng(43.648399, -79.485703),
                zoom: 8,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var infoWindow = new google.maps.InfoWindow();
            var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
            for (i = 0; i < markers.length; i++) {
                var data = markers[i]
                var myLatlng = new google.maps.LatLng(data.lat, data.lng);
                var marker = new google.maps.Marker({
                    position: myLatlng,
                    map: map,
                    title: data.title
                });
                (function (marker, data) {
                    google.maps.event.addListener(marker, "click", function (e) {
                        infoWindow.setContent(data.description);
                        infoWindow.open(map, marker);
                    });
                })(marker, data);
            }
        }
    </script>
    <div id="dvMap" style="width: 500px; height: 277px">
    </div>


            </div>

次に、バックエンド ファイルで、データベースからすべてのデータを取得し、このスクリーンショットでもわかるように、複数のマーカーを適切にレンダリングするリピーターに送信しています

これは、クラスタリングを機能させるために使用しようとしていたセクションです (上記のコードにも表示されます)。

  var mapOptions = {
            center: new google.maps.LatLng(43.648399, -79.485703),
            zoom: 8,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map  = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
        var markerCluster = new MarkerClusterer(map, markers, mapOptions );

ページのソースを表示すると、これはマーカー データに関して取得しているコンテンツです。

<div class="divdisplay">  
          <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
                <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    var markers = [

             {
                 "title": 'Product Specialist',
                 "lat": '43.6877731',
                 "lng": '-79.2709108',
                 "description": 'Product Specialist'
             }

    ,

             {
                 "title": 'Finance Manager',
                 "lat": '43.7345524',
                 "lng": '-79.2561590',
                 "description": 'Finance Manager'
             }

    ,

             {
                 "title": 'New Job',
                 "lat": '43.7598255',
                 "lng": '-79.2252689',
                 "description": 'New Job'
             }

    ,

             {
                 "title": 'AD, Algorithmic Trading Development Team ',
                 "lat": '43.7240344',
                 "lng": '-79.3006776',
                 "description": 'AD, Algorithmic Trading Development Team '
             }

    ,

             {
                 "title": 'Financial Analyst - Investment Finance Systems Ana',
                 "lat": '43.7870613',
                 "lng": '-79.2761657',
                 "description": 'Financial Analyst - Investment Finance Systems Ana'
             }

    ,

             {
                 "title": 'New Business Coordinator CSR - Group Benefits',
                 "lat": '43.7891500',
                 "lng": '-79.1404511',
                 "description": 'New Business Coordinator CSR - Group Benefits'
             }

    ,

             {
                 "title": 'TD Job 1',
                 "lat": '43.7092267',
                 "lng": '-79.2962398',
                 "description": 'TD Job 1'
             }

    ,

             {
                 "title": 'Web Designer',
                 "lat": '43.7841207',
                 "lng": '-79.2917106',
                 "description": 'Web Designer'
             }

    ,

             {
                 "title": 'ceo',
                 "lat": '43.6488293',
                 "lng": '-79.3965691',
                 "description": 'ceo'
             }

    ,

             {
                 "title": 'IT Analyst',
                 "lat": '43.6546566',
                 "lng": '-79.3805941',
                 "description": 'IT Analyst'
             }

    ,

             {
                 "title": 'Part-Time MARKET RESEARCH INTERVIEWERS',
                 "lat": '43.6683729',
                 "lng": '-79.4392835',
                 "description": 'Part-Time MARKET RESEARCH INTERVIEWERS'
             }

    ];    

    var mapOptions = {
        center: new google.maps.LatLng(43.648399, -79.485703),
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map  = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
    var mcOptions = {gridSize: 50, maxZoom: 15};
    var markerCluster = new MarkerClusterer(map, markers, mcOptions);
</script>
<script type="text/javascript">

    window.onload = function () {
        var mapOptions = {
            center: new google.maps.LatLng(43.648399, -79.485703),
            zoom: 8,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var infoWindow = new google.maps.InfoWindow();
        var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
        for (i = 0; i < markers.length; i++) {
            var data = markers[i]
            var myLatlng = new google.maps.LatLng(data.lat, data.lng);
            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                title: data.title
            });
            (function (marker, data) {
                google.maps.event.addListener(marker, "click", function (e) {
                    infoWindow.setContent(data.description);
                    infoWindow.open(map, marker);
                });
            })(marker, data);
        }
    }
</script>
<div id="dvMap" style="width: 500px; height: 277px">
</div>


        </div>

どんなアドバイスも大歓迎です。ありがとう、ラツィアーレ

4

1 に答える 1