Google maps 如何在没有性能问题和延迟的情况下在Google Maps中加载数千个标记

Google maps 如何在没有性能问题和延迟的情况下在Google Maps中加载数千个标记,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我有一张从MySQL数据库导出的4627个标记组成的地图。我使用MarkerClusterer库对标记进行分组,但是我注意到存在明显的延迟,将来可能会出现web浏览器崩溃。如何改进它,如何在没有影响的情况下快速展示它们?我必须使用MarkerManager或MarkerOverlay吗 代码: 我正在从一个.php文件生成的XML文件中提取标记。我设法找到了解决方案。只需使用JSON而不是XML!JSON比XML快得多。我设法找到了解决方案。只需使用JSON而不是XML!JSON比XML快得多。

我有一张从MySQL数据库导出的4627个标记组成的地图。我使用MarkerClusterer库对标记进行分组,但是我注意到存在明显的延迟,将来可能会出现web浏览器崩溃。如何改进它,如何在没有影响的情况下快速展示它们?我必须使用MarkerManager或MarkerOverlay吗

代码:


我正在从一个.php文件生成的XML文件中提取标记。

我设法找到了解决方案。只需使用JSON而不是XML!JSON比XML快得多。我设法找到了解决方案。只需使用JSON而不是XML!JSON比XML快得多。
var markerCluster;
var gmarkers = []; 
var markerclusterer = null;
var mapCenter = new google.maps.LatLng(37.929162, 23.6994703); //Google map Coordinates
var map;
var infowindow1;
infowindow1 = new google.maps.InfoWindow();
var infowindow3;
var edit_address;
var pillar_rel;
var check;

map_initialize(); // initialize google map

//############### Google Map Initialize ##############
function map_initialize()
{
    var googleMapOptions = 
    { 
        center: mapCenter, // map center
        zoom: 15, //zoom level, 0 = earth view to higher value
        maxZoom: 35,
        minZoom: 3,
        zoomControlOptions: {
        style: google.maps.ZoomControlStyle.SMALL //zoom control size
        },
        scaleControl: true, // enable scale control
        mapTypeId: google.maps.MapTypeId.ROADMAP // google map type
    };
    map = new google.maps.Map(document.getElementById("google_map"), googleMapOptions); 

    //Load Markers from the XML File, Check (map_process.php)
    $.get("map_process.php", function (data) {
        $(data).find("marker").each(function () 
        {
            var point   = new google.maps.LatLng(parseFloat($(this).attr('lat')),parseFloat($(this).attr('lng')));
            var township = ("Περιοχή : ").concat($(this).attr('township'));
            var fop = ("Κατηγορία : ").concat($(this).attr('fop'));
            var name = ("Ιστός : ").concat($(this).attr('name'));

            create_marker(point, township, fop, name, address, type, fot, lamp, power, vlaves, pillar, pillar_relation, username, false, false, false, "icons/pillar-small-red.png");               
        });
        markerCluster = new MarkerClusterer(map, gmarkers,
        {
            imagePath: 'icons/m/m'
        });
    });
}
//############### Create Marker Function ##############
function create_marker(MapPos, MapTitle, MapDesc, Yliko, Ypsos, Plithos, TyposFot, TyposLamp, Power, Vlaves, Pillar, Pillar_Relation, User, InfoOpenDefault, DragAble, Removable, iconPath)
{
    var marker = new google.maps.Marker({
        position: MapPos,
        map: map,
        draggable:DragAble,
        animation: google.maps.Animation.DROP,
        title:"ΚΟΛΟΝΑ ΔΕΗ",
        icon: iconPath
    });
    gmarkers.push(marker);
}