ポップアップデータは、ポイントにアタッチされているメタデータを使用して検出されます。これと同様に、クラスタビルダーのクラスタポイントにメタデータを追加する必要があります。私はまた、ClusterElementsは、個々の点に関するデータを持っていることを確認しhttps://github.com/nutiteq/hellomap3d-android/blob/master/com.nutiteq.advancedmap3/src/com/nutiteq/advancedmap3/ClusteredGeoJsonActivity.java
からNutiteqサンプルコードを使用しています。ここで私はちょうどすべての名前をとり、1つの長い文字列に置きます。あなたが見る
protected void onCreate(Bundle savedInstanceState) {
// MapSampleBaseActivity creates and configures mapView
...
// listener with vectorlayer for popups
LocalVectorDataSource vectorDataSource = new LocalVectorDataSource(baseProjection);
mapView.setMapEventListener(new MyMapEventListener(mapView, vectorDataSource));
VectorLayer vectorLayer2 = new VectorLayer(vectorDataSource);
mapView.getLayers().add(vectorLayer2);
...
}
クラスタおよび個々の資本の両方のためにあなたがポップアップを見ることができるように、このサンプルにたMapEventListenerを追加しますID-S
@Override
public VectorElement buildClusterElement(MapPos pos, VectorElementVector elements) {
// Cluster popup has just a number of cluster elements, and default style
// You can create here also Marker, Point etc. Point is suggested for big number of objects
// Note: pos has center of the cluster coordinates
Log.d(Const.LOG_TAG,"cluster from "+elements.size()+" elements");
// add all capital names to metadata of cluster element
StringBuilder capitals = new StringBuilder();
for (int i=0;i<elements.size();i++){
capitals.append(elements.get(i).getMetaDataElement("Capital"));
capitals.append(";");
}
BalloonPopup popup = new BalloonPopup(
pos,
balloonPopupStyle,
Long.toString(elements.size()), "");
popup.setMetaDataElement("ClickText", capitals.toString());
return popup;
}
のリストのような、より具体的なものを、必要があるかもしれませんサンプル結果: