06.10.2009, 15:47
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Beck
|
Эх, никто не хочет разбираться в коде.
|
Вы бы отформатировали его хотя бы. Вы думаете это реально прочесть?
if(m['lat'][i] == all_lat[i2] && m['lng'][i] == all_lng[i2]){m['lat'].splice(i,1);m['lng'].splice(i,1);m['mcount']--;}
|
|
06.10.2009, 16:03
|
Аспирант
|
|
Регистрация: 08.08.2009
Сообщений: 95
|
|
Сейчас выложу кусок кода, где сравнения производятся.
|
|
06.10.2009, 16:04
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Kolyaj
|
Вы бы отформатировали его хотя бы
|
хотя бы вот этим beautifier, если сам не хочешь читабельно писать
|
|
06.10.2009, 16:28
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
а вообще, я бы принимал массив вида
[{"lat":"56.50097598931345","lng":"21.01032257080078"},{"lat":"56.49983904637648","lng":"20.999422073364258"}]
и заменил вот этот код на
for( var i=0; i<markers.length; i++ )
for( var j=0; j<allMarkers.length; j++ )
if( markers[i].lat == allMarkers[j].lat && markers[i].lng == allMarkers[j].lng ) {
markers.splice( i, 1 );
i--;
break;
}
for( var i=0; i<markers.length; i++ )
insertMarker( markers[i] );
allMarkers = allMarkers.concat( markers );
|
|
06.10.2009, 16:43
|
Аспирант
|
|
Регистрация: 08.08.2009
Сообщений: 95
|
|
// all_lat это общий массив широт(latitude), которые уже на карте
//m[] это данные из ответа сервера
console.log(all_lat); = ["56.50097598931345", "56.49983904637648"]
console.log(m['lat']); = ["56.50097598931345", "56.53734016907318", "56.49983904637648"]
newlat = array_diff(m['lat'],all_lat);
newlng = array_diff(m['lng'],all_lng);
// вот это в firebug выдает, при появлении на карте трех маркеров, из которых 1 новый
console.log(newlat); = [undefined, "56.53734016907318"]
// newlat это массив широт для новых маркеров на карте
|
|
06.10.2009, 16:47
|
Аспирант
|
|
Регистрация: 08.08.2009
Сообщений: 95
|
|
Сообщение от x-yuri
|
а вообще, я бы принимал массив вида
[{"lat":"56.50097598931345","lng":"21.01032257080078"},{"lat":"56.49983904637648","lng":"20.999422073364258"}]
и заменил вот этот код на
for( var i=0; i<markers.length; i++ )
for( var j=0; j<allMarkers.length; j++ )
if( markers[i].lat == allMarkers[j].lat && markers[i].lng == allMarkers[j].lng ) {
markers.splice( i, 1 );
i--;
break;
}
for( var i=0; i<markers.length; i++ )
insertMarker( markers[i] );
allMarkers = allMarkers.concat( markers );
|
Спасибо! Вроде все понятно, только вот i--; не совсем уловил зачем?
Можете объяснить?
|
|
06.10.2009, 16:48
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Beck
|
Вроде все понятно, только вот i--; не совсем уловил зачем?
|
а ты попробуй поразбираться/поотлаживать... Это полезно. В общем console.log в помощь
|
|
06.10.2009, 16:49
|
Аспирант
|
|
Регистрация: 08.08.2009
Сообщений: 95
|
|
Сообщение от x-yuri
|
а ты попробуй поразбираться/поотлаживать... Это полезно. В общем console.log в помощь
|
Сейчас же примусь!
Теперь хочу реализовать проверку зон, из которых маркеры уже вытаскивались из базы.
Только вот как бы это реализовать, чтобы не было "слепых зон","пустых зон".
Последний раз редактировалось Beck, 06.10.2009 в 16:56.
|
|
06.10.2009, 17:01
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Сообщение от x-yuri
|
а вообще, я бы принимал массив вида
[{"lat":"56.50097598931345","lng":"21.01032257080078"},{"lat":"56.49983904637648","lng":"20.999422073364258"}]
|
x-yuri,
а я бы (если записей станет больше)
{"head":["lat", "lng"], "rows":[["56.50097598931345", "21.01032257080078"],["56.49983904637648", "20.999422073364258"]]}
Компактней, можно читабельные имена полей задавать, без ущерба для траффика.
|
|
06.10.2009, 17:05
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от Beck
|
Только вот как бы это реализовать, чтобы не было "слепых зон","пустых зон".
|
а откуда они появяться?
e1f, пожалуй +1
|
|
|
|