Hallo OpenStreetMap Forum,
das ist mein erster Eintrag hier, ich hoffe ich poste das an richtiger Stelle.
Meine Problem:
Ich beschäftige mich gerade mit dem Clustern von - testweise - 2000 Punkten. Diese lade ich als JSON mit Hilfe von jQuery in die Karte.
Das funktioniert soweit auch prima.
Wenn ich abe in die Karte zoome und die Cluster sich immer weiter aufteilen verzörgert sich mit jeder Zoomstufe der Seitenaufbau immer mehr.
Ist das so, oder mache ich was falsch?
Hier mein Code:
var map;
var base;
var clusters;
var clusterStrat;
var style;
var features=[];
$(document).ready(init);
function init() {
map = new OpenLayers.Map('mapdiv');
base = new OpenLayers.Layer.OSM();
style = new OpenLayers.Style({
pointRadius: "${radius}",
fillColor: "${fill}",
fillOpacity: 0.8,
strokeColor: "#cc6633",
strokeWidth: 1,
strokeOpacity: 0.8
}, {
context: {
radius: function(feature) {
var pix = 4;
if(feature.cluster) {
pix = Math.min(feature.attributes.count, 7) + 4;
}
return pix;
},
fill:function(feature) {
return (feature.attributes.count<=1) ? "#ff0000":"#ffcc66";
}
}
});
clusterStrat=new OpenLayers.Strategy.Cluster({distance: 50});
clusters = new OpenLayers.Layer.Vector("Cluster", {
projection: "EPSG:4326",
strategies: [clusterStrat],
styleMap: new OpenLayers.StyleMap({
"default": style,
"select": {
fillColor: "#8aeeef",
strokeColor: "#32a8a9"
}
})
});
map.addLayers([base, clusters]);
map.setCenter(new OpenLayers.LonLat(8.2,51.9 ).transform(
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
), 7);
$.getJSON('list.txt', function(data){addToCluster(data)});
}
function addToCluster(data){
for (var i = 0; i < data.length; i++) {
var point = new OpenLayers.Geometry.Point(data[i].lng, data[i].lat);
point.transform( new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject() );
var feature = new OpenLayers.Feature.Vector(point, {title: 'Titel' +i});
features.push(feature);
}
clusters.addFeatures(features);
}
Und so sieht die Datei list.txt aus (Gekürzt)
[{"lat":51.934643413443155,"lng":8.249464853629885,"data":0},{"lat":47.409539465570454,"lng":13.722000000404648,"data":1},{"lat":52.582941634704724,"lng":9.586924136998208,"data":2}, ...]