Bonjour
J'ai une carte avec des marqueurs, chaque marqueur a un score et les 10 meilleurs ont un cercle de taille croissante (et une variation de couleur)
Pour un code identique, j'ai un comportement différent entre Chrome et Firefox/Safari suite au tri d'un tableau associatif
Je suis parti de l'adaptation de la fonction arsort
https://github.com/phpjs/phpjs/blob [...] /arsort.js
Ma version épurée
Code :
- var scores = {};
- var converted_scores = [];
- var sorted_scores = {};
- var total_markers = map_markers.length;
- for(i=0;i<total_markers;i++) {
- scores[i] = map_markers[i].score;
- }
- for(k in scores) {
- converted_scores.push([k, scores[k]]);
- }
- sorter = function(b, a) {
- return a > b ? 1 : a < b ? -1 : 0;
- };
- converted_scores.sort(function(a, b) {
- return sorter(a[1], b[1]);
- });
- total_converted_scores = converted_scores.length;
- for(i=0;i<total_converted_scores;i++) {
- sorted_scores[converted_scores[i][0]] = converted_scores[i][1];
- }
- var rank = 1;
- for(i in sorted_scores) {
- if(map_markers[i]._latlng.lat <= bounds._northEast.lat && map_markers[i]._latlng.lat >= bounds._southWest.lat && map_markers[i]._latlng.lng <= bounds._northEast.lng && map_markers[i]._latlng.lng >= bounds._southWest.lng) {
- if(rank <= 10) {
- debug(rank + ': ' + map_markers[i].score);
- map_markers[i].rank = rank;
- map_setcircle(map_markers[i]._latlng.lat, map_markers[i]._latlng.lng, rank);
- }
- rank++;
- }
- }
|
Je ne vois pas ce qui peut gêner avec Chrome (à part un bug connu, ou une sensibilité avec une conversion de format) ??
A gauche sur Chrome KO
Au milieu sur Firefox OK
A droite sur Safari OK
Message édité par ceam le 26-10-2012 à 21:03:09