<aside> 💡 맵서버란 공간 데이터를 배포하는 오픈소스 플랫폼

</aside>

공식 문서

Welcome to MapServer - MapServer 8.0.0 documentation

WMS (Web Map Service, WMS)

웹맵 서비스. GIS (지리 정보 시스템) 데이터베이스에서 데이터를 사용하기 위해 맵 서버에서 생성된 지도 이미지를 인터넷상에서 제공하기 위한 표준 프로토콜

사용 예시

default config 파일

# 000-default.conf
# 아래 문법이 올바르지 않으면 mapcache가 정상적으로 생기지 않는다.

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
LoadModule mapcache_module /usr/lib/apache2/modules/mod_mapcache.so
<VirtualHost *:80>
     ServerAdmin webmaster@localhost
     DocumentRoot /var/www/html

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
     <Directory "/usr/lib/cgi-bin">
         AllowOverride None
         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
         Order allow,deny
         Allow from all
     </Directory>
     Header always set Access-Control-Allow-Origin "*"
     Header always set Access-Control-Allow-Headers "Authorization"
     Header always set Access-Control-Allow-Methods "GET"
     Header always set Access-Control-Expose-Headers "Content-Security-Policy, Location"
     Header always set Access-Control-Max-Age "600"
     Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
     ProxyPassMatch " ^/(.*\\.php(/.*)?)$" "unix:listen = /var/run/php/php7.4-fpm.sock|fcgi://localhost/var/www/html/$1"
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
     #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
<IfModule mapcache_module>
   <Directory /data/configs>
       Require all granted
   </Directory>

api로 호출하여 celery로 작동

# view.py

@api_view(['POST', 'GET'])
    def run_register_total(request):
        list_file_path = GetListFilePath()
        scenes_dict = GetSpecificScenes(list_file_path)
        for sensor, file_list in scenes_dict.items():
            band, normalization = GetParmas(sensor)
            for scene in file_list:
                params = {
                            "rgb" : band,
                            "scenes" : scene,
                            "work" : "register",
                            "restart" : "True",
                            "normalization" : normalization
                            }
                ret = process_register_job.delay(params = params)
        return HttpResponse('hihi')
        # return HttpResponse(json.dumps({"task_id": ret.id}))