2017-08-11 20 views
0

onEachFeatureイベント内の.getCenter()経由で作成された中心点を、L.Markerなどのを含むオブジェクトに追加する方法はありますか?そのイベントで作成されたセンターポイントのうち、Leaflet.Markerclusterで使用できるものは何ですか?リーフレット:MarkerClusterで使用可能なポリゴンセンターオブジェクト

私は、featureGroupを使用することが解決策だと思ったが、明らかにそうではないと考えた。

L.MarkerまたはL.FeatureGroupのaddTo(map)メソッドを使用して、マップ上にクラスタ化されていない中心点が表示されることがありますが、残念ながら、それらの2つのオブジェクトのどちらでもobjectClusterを使用しようとすると、地図が空になります。ブラウザーのコンソールにエラーメッセージは表示されません。

私はまだJSでかなり緑色なので、私は、L.Markercluster自体について、おそらく何か根本的な何かが欠けていると思います。

図書館:

<!-- Leaflet --> 

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" 
    integrity="sha512-M2wvCLH6DSRazYeZRIm1JnYyh22purTM+FDB5CsyxtQJYeKq83arPe5wgbNmcFXGqiSH2XR8dT/fJISVA1r/zQ==" 
    crossorigin=""/> 
<script src="https://unpkg.com/[email protected]/dist/leaflet.js" 
    integrity="sha512-lInM/apFSqyy1o6s89K4iQUKg6ppXEgsVxT35HbzUupEVRh2Eu9Wdl4tHj7dZO0s1uvplcYGmt3498TtHq+log==" 
    crossorigin=""></script> 

<!-- ESRI Leaflet --> 

<script src="https://unpkg.com/[email protected]/dist/esri-leaflet.js"></script> 

<!-- Leaflet-markercluster --> 

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/MarkerCluster.css"></script> 
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/MarkerCluster.Default.css"></script> 
<script src="https://unpkg.com/[email protected]/dist/leaflet.markercluster.js"></script> 

<!-- Leaflet.MarkerCluster.LayerSupport --> 

<script src="https://unpkg.com/[email protected]/dist/leaflet.markercluster.layersupport.js"></script> 

スクリプト:

<script> 

    var map = L.map('map', { 
    center: [42.389810, -72.524684], 
    zoom: 5 
    }); 

    var esriTopo = L.esri.basemapLayer('Topographic').addTo(map); 

    var ProjectMap = L.esri.featureLayer ({ 
    url: 'https://services.arcgis.com/2gdL2gxYNFY2TOUb/arcgis/rest/services/NECSC_Test_Data/FeatureServer/1', 
    //cheap hack to making the polygons invisible 
    weight: 0, 
    fillOpacity: 0, 

    // creating the centerpoints 
    onEachFeature: function(feature,layer){ 
     if (feature.geometry.type = 'Polygon') { 
     var bounds = layer.getBounds(); 
     var center = bounds.getCenter(); 

     var centerpoints = L.marker(center); 
     centerpointlayer.addLayer(centerpoints); 
     // centerpointlayer defined below as global variable 
     }; 
    }; 
    }).addTo(map); 

    var centerpointlayer = L.featureGroup(); 
    // 

    var clusters = L.markerClusterGroup.layerSupport(); 
    clusters.addTo(map); 
    clusters.checkIn(centerpointlayer); 

    map.zoomIn(5); 
    map.zoomOut(5); 

</script> 

</body> 
</html> 

答えて

1

GAH ...(すなわち、好きではない、それはAPIドキュメントで述べている)私はL.Markercluster間違って実装した判明。最後の/ scriptの最後のコード行は、次のようになります。

var centerpointlayer = L.layerGroup(); 
var clusters = L.markerClusterGroup.layerSupport(); 
clusters.addLayer(centerpointlayer); 
map.addLayer(clusters); 
関連する問題