| Version 5 (modified by , 9 days ago) ( diff ) |
|---|
Advanced Topic
Краток опис на напредната тема (PostGIS)
Како напредна тема за овој проект го избравме PostGIS и QGIS, бидејќи претставуваат најсоодветно решение за функционалностите што системот ги нуди. Уште од самиот почеток, системот беше замислен да работи со локациите на работниците и објавите на корисниците, особено во делот каде што работниците можат да изберат дали сакаат да работат на далечина (remote) или само во рамки на одредена оддалеченост од нивната моментална локација која ја имаат внесено во системот.
Поради ова, PostGIS се покажа како најсоодветна напредна тема, бидејќи, со негова помош, секој мајстор може лесно да ги разгледува понудите што се наоѓаат во негова близина доколку не работи на далечина, додека на корисниците кои бараат мајстори им се препорачуваат оние што се наоѓаат во нивна близина или нудат услуги на далечина.
Функционалности
Во рамките на напредната тема беа имплементирани неколку дополнителни функционалности, и тоа:
fn_suggest_posts_for_worker(p_worker_id, p_limit default 10)
Оваа функција служи за предлагање на соодветни постови за одреден работник врз основа на неговите специјалност и локација. Најпрво се проверува дали работникот има означено дека е достапен за работа од далечина (works_remote), по што се пребаруваат сите активни огласи. Во резултатите се вклучуваат само оние огласи за кои работникот поседува барем една потребна специјалност. Доколку работникот не работи од далечина, дополнително се применува филтер со функцијата ST_DWithin, кој ги ограничува резултатите на огласи што се наоѓаат во зададен радиус од неговата локација. За секој пронајден оглас се пресметува растојанието со функцијата ST_Distance, а резултатите се подредуваат според најблиските огласи. На крај, функцијата враќа ограничен број резултати, со што се добива листа на најрелевантни постови за конкретниот мајстор.
fn_suggest_workers_for_post(p_post_id, p_limit default 10)
fn_draw_active_posts_in_worker_region(p_worker_id, p_limit)
fn_draw_worker_location(p_worker_id)
fn_draw_worker_to_post_lines(p_worker_id, p_limit)
fn_draw_worker_polygons(p_worker_id)
fn_draw_post_location(p_post_id)
fn_draw_workers_applied_to_post(p_post_id, p_limit)
fn_draw_post_to_applicant_lines(p_post_id, p_limit)
Скрипта
[]
Attachments (4)
- Example_worker_not_remote.png (407.4 KB ) - added by 8 days ago.
- Example_application.jpg (55.7 KB ) - added by 8 days ago.
- MajStore_PostGis.sql (9.1 KB ) - added by 6 days ago.
- MajStore_PostGis_refactored.sql (7.6 KB ) - added by 6 days ago.
Download all attachments as: .zip
