
Explore web GIS fundamentals across HTML, CSS, Bootstrap, and JavaScript, then apply interactively with Leaflet, Turf, ECharts, and Geoserver WMS/WFS to build dynamic maps.
Recap the tools and workflows from part 1—ArcGIS Pro, QGIS, PostgreSQL with PostGIS, and GeoServer—covering spatial data, 2D and 3D maps, and web publishing.
Learn the basics of web programming languages with HTML, a Hypertext Markup Language, as a markup language of tags that structure web pages in browsers.
Create your first html web application by turning a text file into an html document, using code editors to write it, and previewing in a browser.
Explore html tags from h1 to h6, paragraph, link, button, input, image, hr, and br, with attributes like href, src, placeholder, width, height, and use live server in VS Code.
Explore HTML structure by identifying opening and closing tags, head and body, and key elements; apply inline styles with the style attribute and use meta, charset, viewport, and doctype HTML5.
Explore HTML elements and attributes, including the title attribute that displays tooltips, nesting p with b, i, em, mark, and abbr, and using pre for preformatted text.
Discover how the address element uses italic styling, apply dir and bidirectional override for right-to-left languages, and use comments, style colors, and width to control layout.
Learn HTML table elements, including table, tr, headers, and td, and apply inline CSS for borders, width, text alignment, height, and captions to organize data.
Explore advanced HTML table techniques, including span across columns and rows, padding and borders, plus CSS zebra striping, and learn to structure and style ordered and unordered lists.
Master the span element to style text and assign IDs or classes to HTML elements with CSS. Explore inline and internal CSS, and nested and description lists.
Embed external content with HTML iframes by setting the src and title attributes. Resize width and height to display YouTube videos, Google Maps, Facebook and Instagram posts within your page.
Explore foundational web page layout with header, nav, section, article, aside, and footer, and learn to apply css float to create two-column layouts, with inline and internal css demonstrations.
Explore responsive web design by implementing image scaling with width: 100% and max-width, typography with vw units, media queries, and using kbd, samp, and code elements in monospace fonts.
Compare data lists and selects via an input list. Demonstrate input properties such as required, disabled, checked, max length, and read only across types like email, password, radio, and date.
Learn how cascading style sheets format web pages, controlling color, font, spacing, and layout. Explore inline, internal, and external CSS, plus id and class selectors for scalable styling.
Master CSS font properties to optimize readability by selecting font family with fallbacks, weight, style, and size. Explore Google fonts to enrich typefaces and ensure broad browser support.
Import icons from the internet using libraries like Google icons, Bootstrap icons, and Font Awesome via CDN links. Use SVG or PNG formats and adjust size with CSS.
Learn to import free images from unsplash, pixabay, and undraw, add css text and box shadows, style links with hover and visited states, and experiment with cursor properties.
Explore how CSS uses display, inline, block, and inline-block to build a navigation menu, center an image, and apply descendant, child, adjacent, and general sibling selectors.
Learn to build a dropdown button and drop-down content with HTML and CSS, apply hover effects, style links and images, and control stacking with site index to appear in front.
Develop a simple, responsive web layout by applying CSS properties to create a background image, navigation bars, and a dropdown with hover effects, then test yourself against the provided resources.
Create a responsive three-column page layout with header and top nav using HTML and CSS, using floats, box-sizing, and a media query for stacking on small screens.
Master the CSS important rule, use calc for dynamic values, and declare and call CSS variables with var(--name), including nested calc, to create responsive styles.
Learn to use CSS variables for local and global scope with var(--name) to set widths, colors, and radii, and import multiple images with a single background shorthand.
Learn to implement tooltips with hover, create image reflections using webkit reflection, apply gradient masking with -webkit-mask-image, and style multiple CSS buttons with hover transitions and disabled states.
Learn CSS button animations with an animated arrow pointer and hover transitions, and build a simple pagination UI to navigate multiple pages.
Explore multi-column layouts with column count, column gap, and column rule, then control textarea resize and master flexible layouts using CSS flexbox with direction, wrap, and alignment.
Master flexbox basics with css display flex, including flex group, grow, and basis. Use media queries to build responsive layouts that switch from two columns to a stacked column.
Learn to integrate the bootstrap CSS framework to build responsive web pages, choosing between CDN or downloaded files, and apply bootstrap classes like btn and alert for styling.
Learn how to integrate Bootstrap in web projects by copying ready-made components, importing Bootstrap files, and customizing forms, buttons, alerts, cards, and carousels.
Explore bootstrap components to build a complete web page layout with a navbar, sidebar, image cards, tables, and tabs, plus a footer with icons, using responsive grid and columns.
Master Bootstrap styles by building a responsive web page with accordions, tables, carousels, and Bootstrap icons in a right sidebar, header, and footer.
Continue building the portfolio webpage by applying responsive CSS techniques, including media queries, base element styles, box-sizing rules, smooth scrolling, and a fixed header with a mobile navigation toggle.
Create a responsive portfolio webpage (part 3) featuring a mobile-friendly navigation, active link underline, a downloadable CV, and social icons in a grid.
Learn to craft a portfolio webpage layout with a relative home container, calc-based height minus header, and a two-row grid with max-content rows and space around alignment.
Build a portfolio webpage by creating a services section with icon cards and a responsive projects grid that uses hover effects, filters, and a more button to showcase GIS work.
Style the portfolio's projects page with card layouts, hover effects, and responsive two-column grids, while wiring navigation anchors and planning a hire me section for future JavaScript filtering.
Continue building the portfolio webpage by creating a contacts page, updating button styles and icons, and adding a contact form with a responsive CSS grid and hover effects.
Builds a responsive portfolio webpage footer with structured sections, a full name title, a description, social icons from box icons, and a copyright line, styled for alignment and hover effects.
Learn how JavaScript makes static webpages dynamic by enabling interactive content, events, and functions, including internal and external scripts, linking, and basic examples like alert and button clicks.
Learn to manipulate the web page with JavaScript using document.getElementById and innerHTML, respond to button clicks with onclick and alerts, and move scripts to external files for performance.
Explore how JavaScript displays data with innerHTML, document.write, alert, and console.log, and master statements, variables with let, var, and const, and the difference between equals and equal to operators.
Explore how JavaScript identifiers name variables and functions, with case sensitivity and letters, digits, underscores, and dollar signs. Learn var, let, and const scope, redeclaration, and string concatenation with numbers.
Explore arithmetic and assignment operators in JavaScript, including addition, subtraction, multiplication, division, modulus, exponentiation, and pre-increment and post-increment, with string concatenation and dynamic typing.
Explore JavaScript functions and objects with practical examples, learning parameters, arguments, return values, and dot notation to manipulate objects like a car, for web GIS development.
Explore declaring and using objects in JavaScript, including dot and bracket notation, with methods using this to access properties, and strings: length, slice, substring, substr.
Explore built-in JavaScript string methods such as slice, substring, substr, and length, learn how to extract substrings, handle negative indices, and apply replace, replaceAll, and case conversions to manipulate text.
Explore built-in JavaScript string functions, including concat, trim, index of, search, and match; learn ends with and backticks for multi-line strings with dollar sign and braces in web GIS.
Explore JavaScript number data types, including strings and arithmetic behavior, and convert strings to numbers using Number, parseInt, and parseFloat. Demonstrate base conversions to binary, octal, hexadecimal, and decimal.
Explore arrays in JavaScript (JS Part 11) by declaring, indexing, and manipulating multi-type arrays, including length, isArray checks, and different declaration syntaxes, with practical examples.
Explore JavaScript date objects via new Date(), browser timezone, and toDateString/UTC string formatting, plus math functions including random, rounding, min/max, and overflow behavior.
Explore how switch statements in JavaScript evaluate cases with break and default, and compare them to if conditions to control program flow and handle input grading.
Master for, for-in, while, and do-while loops in JavaScript to iterate arrays and object properties, with syntax insights and practical examples.
Explore how the DOM and document object model let you interact with HTML elements by using getElementById, onclick, onmouseover, onmousemove, and onkeydown, read event.keyCode, and perform CSS manipulation via element.style.
Learn to select DOM elements by class name and tag name, and render table data from an object array using getElementById and innerHTML with for loops.
Explore setTimeout and setInterval in JavaScript to delay and repeat code, using callbacks, DOM manipulation (getElementById, innerHTML, onclick) and a bootstrap spinner to show loading and completion after 3 seconds.
Bind a select to a display span with onchange to show the chosen language, and drive a radio-based interface that updates image, name, link, and price from a courses array.
Explore dynamic form interactions with JavaScript by handling onchange on a select to display the chosen option, and update page elements using getElementById, innerHTML, and arrays of course objects.
Enhance the portfolio webpage by implementing active filter indicators for projects like web mapping, automation, and data engineering. Integrate a Swiper testimonial carousel and GSAP animations for improved visuals.
Explore the jQuery library and its configuration, including CDN and local imports, and implement a fade in/out animation on an image with a button.
Learn to manipulate HTML and CSS with vanilla JavaScript and jQuery, changing element content and styles by id, tag name, class, and querySelector.
Explore jQuery fundamentals with predefined click, hide, show, and toggle functions, ready events, and hover interactions to manipulate div and paragraph elements in web pages.
Learn to build a sign-in page for a portfolio site and implement a show-password toggle using jQuery, Bootstrap, and a checkbox to switch a password field between text and password.
Learn php basics and how to install and run an xampp/amp server, embed php into html, and handle reading and writing data to databases via a local server.
Explore PHP fundamentals including echo and print, comments, variables with $, data types, concatenation with dot, and handling user input via a GET form using $_GET to display input.
Explore if and elseif conditions and switch statements in PHP, using login roles admin, editor, and user, with echo messages, default cases, and grade-based switch examples.
Build a basic calculator with PHP by taking two inputs and an operator, submitting via get, and displaying the result using a switch-case to perform add, subtract, multiply, or divide.
Master PHP loops by examining while, do while, for, and foreach with syntax examples, conditions, increments, and reading data from arrays.
Learn how to create and call PHP user defined functions to add a $300 bonus and increase salary by 35%, using parameters, return values, and scope concepts.
Explore how to use user-defined functions in PHP with global and local variables, passing salary values to bonus salary function and increase salary function, and organizing code in separate files.
Learn to add a services page to a php portfolio site, reuse header and footer with includes, and enable sign-in, sign-up, and language translation features.
Validate registration forms in PHP by checking for empty fields, validating emails, and ensuring password confirmation, then display errors with Bootstrap alerts and hash passwords before storing in MySQL.
Discover how a PHP sign-in page validates credentials by querying the users table for the email, verifies the encrypted password, and redirects to services.php, while noting a current access-control issue.
Develop a localization workflow for a web GIS project by adding a language toggle between English and Arabic. Build a dictionary-driven translation system using lang.php and dictionary.php with session handling.
Learn how to implement localization in a web GIS project by translating navigation and content with a dictionary and a language file, switching between English and Arabic.
Please rate and comment on the course, as your feedback helps improve the GIS course and supports students on their learning journey.
Learn to enhance web maps with diverse basemaps in Leaflet, adjust zoom and opacity, and add interactive markers with custom icons and popups.
Learn Leaflet with GeoJSON by loading points, lines, and polygons from geojson.io, using onEachFeature to bind pop up with feature properties on the map.
Develop an interactive Afghanistan provinces map using web GIS, with a searchable dropdown that filters province polygons, and integrate it into a portfolio page using Leaflet and GeoJSON data.
Province names:
--------------
Badakhshan
Badghis
Baghlan
Balkh
Bamyan
Daykundi
Farah
Faryab
Ghazni
Ghor
Hilmand
Hirat
Jawzjan
Kabul
Kandahar
Kapisa
Khost
Kunar
Kunduz
Laghman
Logar
Nangarhar
Nimroz
Nuristan
Paktika
Paktya
Panjshir
Parwan
Samangan
Sari Pul
Takhar
Uruzgan
Wardak
Zabul
---------------------------------------
Province names as html option:
<option value="">All</option>
<option value="Badakhshan">Badakhshan</option>
<option value="Badghis">Badghis</option>
<option value="Baghlan">Baghlan</option>
<option value="Balkh">Balkh</option>
<option value="Bamyan">Bamyan</option>
<option value="Daykundi">Daykundi</option>
<option value="Farah">Farah</option>
<option value="Faryab">Faryab</option>
<option value="Ghazni">Ghazni</option>
<option value="Ghor">Ghor</option>
<option value="Hilmand">Hilmand</option>
<option value="Hirat">Hirat</option>
<option value="Jawzjan">Jawzjan</option>
<option value="Kabul">Kabul</option>
<option value="Kandahar">Kandahar</option>
<option value="Kapisa">Kapisa</option>
<option value="Khost">Khost</option>
<option value="Kunar">Kunar</option>
<option value="Kunduz">Kunduz</option>
<option value="Laghman">Laghman</option>
<option value="Logar">Logar</option>
<option value="Nangarhar">Nangarhar</option>
<option value="Nimroz">Nimroz</option>
<option value="Nuristan">Nuristan</option>
<option value="Paktika">Paktika</option>
<option value="Paktya">Paktya</option>
<option value="Panjshir">Panjshir</option>
<option value="Parwan">Parwan</option>
<option value="Samangan">Samangan</option>
<option value="Takhar">Takhar</option>
<option value="Uruzgan">Uruzgan</option>
<option value="Wardak">Wardak</option>
<option value="Zabul">Zabul</option>
Style a responsive 20% sidebar and enable province filtering in a web gis project. Use a jquery-driven dropdown and live search to filter geojson provinces on a leaflet map.
Level up an interactive Afghanistan provinces map by adding side panels, a scale bar, and image import, using Bootstrap and jQuery to toggle layers.
Learn to implement an all/none toggle in a web GIS project by adding JavaScript conditional logic to show or hide map layers with Leaflet.
Learn to convert GeoJSON accident points into clusters using the Leaflet marker cluster plugin, including setup via dist files or CDN, and wiring marker clusters with GeoJSON data.
Explore the basics of Openlayers and Mapbox by building a simple web map with an OSM tile source, a Mapbox token, and a div map rendered via a live server.
Learn how to use turfjs to create points from longitude-first coordinates, visualize them on a web map, and compute distances between points in kilometers or miles.
Create and visualize multiple points, lines, and a polygon with turf.js; compute the center of points, measure line lengths in kilometers, and calculate polygon area on a map using GeoJSON.
Learn to create a buffer around a point with turf.js, fit bounds, and compute polygon intersection, union, difference, centroid, and point-to-line distance.
Explore creating a point-based buffer with a polygon around a point using turf.js, including line offset, polygon smooth, and transforming polygons through translate and scale on a web map.
Find points outside a polygon with turf boolean point in polygon and negation, then identify the closest point to a target using turf nearest point and display on a map.
Add zooming interactivity to the Afghanistan provinces map by zooming to a province's bounding area. Implement an area slider to filter polygons by their area and show the province count.
Explore apache echarts to visualize data in web gis, using bar charts and other chart types. Leverage a powerful rendering engine, data filtering, clustering, and regression for in-depth data analysis.
Explore an interactive Afghanistan provinces map that visualizes population and region data with a dynamic pie chart, dropdown filtering, and integrated charts in a web GIS project.
Import and configure a bar chart and a line chart in a web GIS project for Afghanistan provinces, wire them to a map, and work with hard-coded data and interactivity.
Explore Geoserver and the world of Web GIS, publishing and visualizing spatial data on the web with open source tools like PostGIS and shapefiles.
Explore requesting WFS from Geoserver and styling map features, including configuring WFS responses, applying SQL filters, and building interactive popups with GeoJSON in web GIS.
Learn to implement a dropdown-based WFS filtering with CQL filtering using Geoserver layers, fetch province names via Ajax, populate options, and zoom to the selected province on the map.
Welcome to the second part of our comprehensive GIS series, where we dive into the exciting world of Web GIS. This hands-on course is designed to empower you with the skills and knowledge necessary to become a master of web technologies and build interactive, dynamic, and visually appealing Geographic Information Systems (GIS) applications.
In this advanced course, we will take your GIS expertise to the next level, focusing on the integration of web development technologies with spatial data to create cutting-edge mapping applications. Through a combination of theoretical lessons, practical exercises, and real-world projects, you'll gain a strong understanding of the following key areas:
HTML Fundamentals: We will start from the basics of HTML, the backbone of web development, and gradually explore the essential tags and structures required to create web pages.
CSS Styling: Learn how to add style and formatting to your web pages using Cascading Style Sheets (CSS) to create visually appealing interfaces for your GIS applications.
Bootstrap Framework: Discover the power of Bootstrap, a popular front-end framework that will enable you to build responsive, mobile-friendly web GIS interfaces efficiently.
JavaScript Essentials: Dive into the world of JavaScript, a versatile programming language used for adding interactivity to web pages, and apply it to manipulate and visualize geographic data.
jQuery Library: Explore jQuery, a fast and lightweight JavaScript library, to simplify and enhance the handling of events, animations, and AJAX interactions in your GIS applications.
PHP Basics: Get introduced to PHP, a server-side scripting language, to perform dynamic data processing and integration within your Web GIS projects.
Leaflet Library: Learn how to use Leaflet, a powerful open-source JavaScript library, to create interactive and customizable maps with various base-maps and overlays.
TurfJS Library: Delve into TurfJS, a geospatial analysis library, to perform complex spatial operations and manipulations directly in the browser.
Echarts Library: Discover Echarts, a powerful charting and visualization library, to create stunning data visualizations for your Web GIS applications.
GeoServer API: Utilize GeoServer's API for Web Map Service (WMS) and Web Feature Service (WFS) to access and manipulate geospatial data for map rendering and feature querying in web applications.
By the end of this course, you will have honed your skills in HTML, CSS, JavaScript, and various libraries essential for Web GIS development. You will be equipped to design, develop, and deploy sophisticated GIS applications that leverage the capabilities of modern web technologies to showcase and analyze spatial data effectively.
Whether you are a GIS professional, a web developer looking to venture into the geospatial domain, or a student with a passion for maps and data, this course will empower you to unlock the true potential of Web GIS and contribute to the evolving field of geospatial technology.
Join us on this exciting journey of mastering Web GIS, and let's map the world together!