标记聚类时“marker.getPosition 不是函数”[重复]

Posted

技术标签:

【中文标题】标记聚类时“marker.getPosition 不是函数”[重复]【英文标题】:"marker.getPosition is not a function" while markerclustering [duplicate] 【发布时间】:2018-07-15 09:23:39 【问题描述】:

结果给了我这个错误:“TypeError: marker.getPosition is not a function”。

我对 markerClustering 进行了多次搜索,但找不到任何错误解释!

我的变量 myMarkers 是 MarkerClusterer 文档中要求的数组。

如果有人可以帮助我,将不胜感激:)

function initMap()

    var maDataBase = [];
    var myMarkers = [];

    $.getJSON( "https://api.jcdecaux.com/vls/v1/stations?contract=MY-CONTRACT&apiKey=MY-API-KEY", function( data ) 
        $.each( data, function( key, val ) 
        maDataBase.push(val);
        );
    ).done(function() 

        var bounds = new google.maps.LatLngBounds();
        var myMap = $('.main')[0];
        var mapOptions = 
            mapTypeId : google.maps.MapTypeId.ROADMAP
        ;

        var googleMap = new google.maps.Map(myMap, mapOptions);

        for (var i = 0; i < 50; i++)

            myMarkers.push(new google.maps.LatLng(maDataBase[i].position.lat, maDataBase[i].position.lng));

            for (var x = 0, marker; x < myMarkers.length;x++)

                bounds.extend(myMarkers[i]);

                marker = new google.maps.Marker(
                    map : googleMap,
                    position: myMarkers[i],
                );
            

        ;

        googleMap.fitBounds(bounds);
        var markerCluster = new MarkerClusterer(googleMap, myMarkers,imagePath: '../img/m');

    );

;
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>JCDecaux</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="css/main.css" />
</head>
<body>
    <div class="main" id="main">

    </div>




    <script async defer src="https://maps.googleapis.com/maps/api/js?key=MY-API-KEY&callback=initMap"></script>
    <script src="js/markerclusterer.js"></script>

    <script src="js/jquery.min.js"></script>

    <script src="js/main.js"></script>
</body>
</html>

【问题讨论】:

代替myMarkers.push(new google.maps.LatLng(maDataBase[i].position.lat, maDataBase[i].position.lng));myMarkers.push(new google.maps.Marker(/*MarkerOptions object*/)); 【参考方案1】:

myMarkers 不是google.maps.Markers 的数组。这些条目没有getPosition 方法。将您创建的google.maps.Marker 对象保存在一个数组中,并将其添加到MarkerClusterer

【讨论】:

以上是关于标记聚类时“marker.getPosition 不是函数”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 HDBSCAN 聚类时获取聚类中心 [重复]

使用 K-Means 聚类时,为啥我的数据点不在正确准确的聚类中?

使用 kmeans 对数据进行聚类时出错

为啥当我用 K-means 进行 4 个聚类时,我只有一个惯性而不是 4 个?

使用带有 Silhouette 函数的 k-means 聚类时如何选择 k?

使用带有 Silhouette 函数的 k-means 聚类时如何选择 k?