Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Google Maps: più marker su stesso punto

    ciao!
    ho questo codice che mi tira fuori varie coordinate da database.
    funziona tutto, solo che nel caso in cui ci siano coppie di coordinate uguali.
    in quel caso si vede un solo marker.
    c'è un sistema per dirgli di metterne di più?
    codice:
        var centerMap;
        var map;
        var mapOptions;
    
        function initializeMap() {
            centerMap = new google.maps.LatLng(............);
            var mapOptions = {
                center: centerMap,
                zoom: 2,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
    
            map = new google.maps.Map(document.getElementById("map"), mapOptions);
            $.getJSON("..............", function (json) {
                $.each(json, function (i, item) {
                    var marker = new google.maps.Marker({
                        position: new google.maps.LatLng(item.lat, item.lon),
                        map: map,
                        title: item.clie_ragsoc
                    });
    
                    var tooltip = '<div id="tooltip">' +
                            '<p>' + item.clie_cod + ' - ' + item.clie_ragsoc + '</p>' +
                            '<p>' + item.clie_citta + ' - ' + item.clie_prov + '</p>' +
                            '<p>PZ: ' + item.qta + '</p>'
                    '</div>';
    
                    var infoWindow = new google.maps.InfoWindow();
                    var addListener = function (m, c) {
                        google.maps.event.addListener(m, 'click', function () {
                            infoWindow.setContent(c);
                            infoWindow.open(map, m);
                        });
                    }
    
                    addListener(marker, tooltip);
                });
    
            });
        }
        google.maps.event.addDomListener(window, 'load', initializeMap);

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, sei sicuro che ce ne sia solo una e che non siano sovrapposte?

  3. #3
    ciao!
    si sono sicuro, anche perchè ho visto che il comportamento di default è quello.
    cmq ho mezzo risolto così:
    codice:
    <script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=true"></script>
    <script src="http://www.mediwales.com/mapping/wp-content/themes/default/markerclusterer.js" type="text/javascript"></script>
    <script>
        var centerMap;
        var map;
        var mapOptions;
        var min = .999999;
        var max = 1.000001;
        var cluster = [];
        var info = '';
    
        function initializeMap() {
            centerMap = new google.maps.LatLng(.........);
            var mapOptions = {
                center: centerMap,
                zoom: 2,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var infoWindow = new google.maps.InfoWindow();
    
            map = new google.maps.Map(document.getElementById("map"), mapOptions);
            $.getJSON(..........., function (json) {
                $.each(json, function (i, item) {
                    var offsetLat = item.lat * (Math.random() * (max - min) + min);
                    var offsetLng = item.lon * (Math.random() * (max - min) + min);
    
                    var marker = new google.maps.Marker({
                        position: new google.maps.LatLng(offsetLat, offsetLng),
                        map: map,
                        title: item.clie_ragsoc
                    });
    
                    var tooltip = '<div id="tooltip">' +
                            '<p>' + item.clie_cod + ' - ' + item.clie_ragsoc + '</p>' +
                            '<p>' + item.clie_citta + ' - ' + item.clie_prov + '</p>' +
                            '<p>PZ: ' + item.qta + '</p>'
                    '</div>';
    
                    google.maps.event.addListener(marker, 'click', function (i) {
                        info = tooltip;
                        infoWindow.setContent(tooltip);
                        infoWindow.open(map, marker);
                        $('#info').html(info);
                    });
                    cluster.push(marker);
                });
    
                var mc = new MarkerClusterer(map, cluster);
                google.maps.event.addListener(mc, 'clusterclick', function (cluster) {
                    var cl = cluster.getMarkers();
                    info = '';
                    for (var i = 0; i < cl.length; i++) {
                        info += cl[i].title + '<br>';
                    }
                    $('#info').html(info);
                });
            });
        }
        google.maps.event.addDomListener(window, 'load', initializeMap);
    </script>
    ho usato MarkerClusterer.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.