SASGIS - SAS.Планета  | 
| View Issue Details | 
  | 
| ID | Project | Category | View Status | Date Submitted | Last Update | 
| 0002275 | SAS.Планета | [All Projects] Баг / Bug | public | 26-11-2013 15:55 | 26-11-2013 20:32 | 
  | 
| Reporter | zed |   | 
| Assigned To | vdemidov |   | 
| Priority | normal | Severity | minor | Reproducibility | always | 
| Status | resolved | Resolution | fixed |   | 
| Platform |  | OS |  | OS Version |  | 
| Product Version | 131111 |   | 
| Target Version | 140303 | Fixed in Version | 140303 |   | 
  | 
| Summary | 0002275: Ошибка в рассчёте расстояний и площадей | 
| Description | Причём, ошибка не в алгоритмах, а где-то выше (может где появилось лишнее округление координат точек?). Ошибка воспроизводится на полигонах из *.sml, т.е. туда всё пишется верно. | 
| Steps To Reproduce | Берём ночнушку или релиз 13111, импортируем полигон из аттача и смотрим в информацию: 
 
Количество частей: 1 
Количество точек: 2962 
Периметр: 2978,29 км 
Площадь: 204826,71 км2 
 
Билдим SAS по состоянию на пол-года назад (к примеру, rev.7350), запускаем с тем же файлом меток (sml), который создал релиз и смотрим на информацию ещё раз: 
 
Количество частей: 1 
Количество точек: 2962 
Периметр: 2991,25 км 
Площадь: 206207,16 км2  | 
| Additional Information | Значения периметра/площади старой версии можно считать референсными, поскольку они сравнивались с GlobalMapper и QGIS. 
 
Собственно, начав копаться в сорцах QGIS на предмет расчёта расстояний/площадей и обнаружилось что хоть в qgis алгоритм расчёта расстояний и идентичен нашему, SAS вдруг стал нагло врать и ничего не сходится, даже с его же прошлыми показаниями...  
 
НО если раньше SAS выдавал ошибку на полигоне 1-4.kml из этого сообщения на форуме, сегодняшняя версия отрабатывает без ошибок алгоритма (о точности результата пока не возьмусь говорить). | 
| Tags | No tags attached. | 
| Relationships |  | 
| Attached Files |   EuropeMinsk.kml (66,213) 26-11-2013 15:55 http://www.sasgis.org/mantis/file_download.php?file_id=1604&type=bug
   Image 2.png (2,485) 26-11-2013 17:09 http://www.sasgis.org/mantis/file_download.php?file_id=1605&type=bug
  
  | 
  | 
| Issue History | 
| Date Modified | Username | Field | Change | 
| 26-11-2013 15:55 | zed | New Issue |  | 
| 26-11-2013 15:55 | zed | File Added: EuropeMinsk.kml |  | 
| 26-11-2013 15:56 | zed | Additional Information Updated | bug_revision_view_page.php?rev_id=5856#r5856 | 
| 26-11-2013 16:18 | vdemidov | Note Added: 0013323 |  | 
| 26-11-2013 16:21 | zed | Note Added: 0013324 |  | 
| 26-11-2013 16:39 | vdemidov | Note Added: 0013325 |  | 
| 26-11-2013 17:09 | zed | File Added: Image 2.png |  | 
| 26-11-2013 17:10 | zed | Note Added: 0013326 |  | 
| 26-11-2013 17:16 | zed | Note Added: 0013327 |  | 
| 26-11-2013 17:17 | vdemidov | Note Added: 0013328 |  | 
| 26-11-2013 17:21 | zed | Note Added: 0013329 |  | 
| 26-11-2013 17:46 | zed | Note Added: 0013330 |  | 
| 26-11-2013 19:33 | vdemidov | Assigned To |  => vdemidov | 
| 26-11-2013 19:33 | vdemidov | Status | new => assigned | 
| 26-11-2013 20:31 | vdemidov | Status | assigned => resolved | 
| 26-11-2013 20:31 | vdemidov | Fixed in Version |  => 140303 | 
| 26-11-2013 20:31 | vdemidov | Resolution | open => fixed | 
| 26-11-2013 20:32 | vdemidov | Target Version |  => 140303 | 
| 08-08-2025 13:22 | zed | Category | Баг => Баг / Bug | 
	| 
		Notes	 | 
	
		 
	 | 
	| 
		
	 | 
	
		
		
			| 
				Попробуй переключиться с гугловской карты на яндексовскую или наоборот перед вычислением площади и периметра.			 | 
		 
		 
	 | 
	
		 
	 | 
	
		
		
			| 
				(0013324)
			 | 
		 
		
			| 
				zed   
			 | 
		 
		
			| 
				26-11-2013 16:21   
							 | 
		 
		 
	 | 
	
		
	 | 
	
		 
	 | 
	| 
		
	 | 
	
		
		
			| 
				Странно. Там добавляется только вычисление хэша. никакая логика не меняется. Разве что где-то очепятался. Глянь свежим взглядом.			 | 
		 
		 
	 | 
	
		 
	 | 
	
		
		
			| 
				(0013326)
			 | 
		 
		
			| 
				zed   
			 | 
		 
		
			| 
				26-11-2013 17:10   
							 | 
		 
		 
	 | 
	
		
		
			| 
				Пока не нашёл где, но явная ошибка в передаче параметров в конструктор TDatum (скриншот).			 | 
		 
		 
	 | 
	
		 
	 | 
	
		
		
			| 
				(0013327)
			 | 
		 
		
			| 
				zed   
			 | 
		 
		
			| 
				26-11-2013 17:16   
							 | 
		 
		 
	 | 
	
		
		
			
				Нашёл. В нескольких местах есть такие строчки: 
 
> u_GlobalState.FGPSDatum := TDatum.Create(3395, 6378137, 6356752); 
> u_MarkDbGUIHelper.TDatum.Create(3395, 6378137, 6356752) 
 
Это как минимум. И как оно вообще работает с такими-то багами???			 | 
		 
		 
	 | 
	
		 
	 | 
	| 
		
	 | 
	
		
		
			| 
				Ух ты. А как оно вообще скомпилилось?????			 | 
		 
		 
	 | 
	
		 
	 | 
	
		
		
			| 
				(0013329)
			 | 
		 
		
			| 
				zed   
			 | 
		 
		
			| 
				26-11-2013 17:21   
							 | 
		 
		 
	 | 
	
		
		
			| 
				Скомпилилось-то без проблем: THashValue = UInt64; и есть перегруженный конструктор, который принимает 3 параметра.			 | 
		 
		 
	 | 
	
		 
	 | 
	
		
		
			| 
				(0013330)
			 | 
		 
		
			| 
				zed   
			 | 
		 
		
			| 
				26-11-2013 17:46   
							 | 
		 
		 
	 | 
	
		
		
			
				А заодно, кстати, и выявился баг не баг, а недоработка - информация для меток выводится не в датуме карты, а в жёстко зашитом в коде датуме. И на текущий момент это эллипсоид. Нужно добавить переключатель какой-нить что-ли: какой именно использовать датум, для расчётов - тот что у карты или эллипсоид. И по-умолчанию таки стоит оставить эллипсоид.  
 
P.S. И кстати, почему для создания _датума_ используется код _проекции_? Тоже баг?			 | 
		 
		 
	 |