Sun Shadow Map

Sun Shadow Map

Explore how the Sun's position changes a simple building's ground shadow over three times. Enter a local clock time and its explicit UTC offset, a WGS84 location, and up to eight rectangular footprints positioned in local east/north meters. The browser uses NOAA's approximate geometric solar equations and projects each raised rectangle onto level ground. This is a planning illustration, not a survey, site-illumination or safety assessment.

1. Sun time and map origin

The offset is fixed, such as +09:00. This tool does not look up daylight-saving rules. Latitude/longitude are WGS84; building coordinates below are meters east/north of this origin.

2. Rectangular building footprints

Up to eight vertical rectangular prisms on flat ground. East/north place each center relative to the map origin. Width and depth are meters; bearing is the depth-axis direction clockwise from north. Width and depth must be 0.1–200m; height 0.1–300m; centers must stay within ±300m.

Building 1
Building 2

Edit the sample and calculate three local-time shadows.

Comments & questions

Sun Shadow Map

Explore how the Sun's position changes a simple building's ground shadow over three times. Enter a local clock time and its explicit UTC offset, a WGS84 location, and up to eight rectangular footprints positioned in local east/north meters. The browser uses NOAA's approximate geometric solar equations and projects each raised rectangle onto level ground. This is a planning illustration, not a survey, site-illumination or safety assessment.

Key features

  • NOAA approximate solar azimuth clockwise from north and geometric elevation for the selected instant
  • Explicit UTC offset and three local-time scenes around the selected time, including date crossings
  • Rotated rectangular building footprints with heights and measured east/north offsets
  • Ground shadow polygons from the convex hull of each footprint and its solar translation
  • Identical meter scale across three SVG views, with no external basemap or tiles
  • Download standalone SVG and WGS84 GeoJSON footprints and finite shadows

How to use

  1. Choose a date from 1901–2099, a local time, and an explicit UTC offset such as +09:00; use the offset in force at the selected date.
  2. Enter a WGS84 latitude and longitude. The example uses central Seoul; east/north building coordinates are meter offsets from this origin.
  3. Add rectangular buildings with width, depth, bearing clockwise from north and height in meters.
  4. Calculate the selected time and equal intervals before and after it; read azimuth, elevation, shadow length and per-building status.
  5. Compare the maps at one scale and download the SVG or GeoJSON. No finite shadow polygon is drawn below the geometric horizon or beyond the stated map limit.

Use cases

  • Compare a small proposed building's approximate shadow at morning, noon and afternoon
  • Explain why UTC offset and longitude both matter to solar time
  • Export simple footprint and shadow polygons for further exploratory GIS work
  • Teach the relationship between height, solar elevation and ground shadow length

Frequently asked questions

Is the Sun angle a precise ephemeris or an apparent sunrise prediction?

No. It uses NOAA's approximate fractional-year equation of time and declination for the geometric center of the Sun. Atmospheric refraction, terrain, weather, elevation and the solar disk are omitted. NOAA notes reduced accuracy at high latitude and outside its recommended date range; this tool restricts years to 1901–2099.

How is a building shadow polygon calculated?

The building is a vertical rectangular prism on level ground. Each roof corner shifts opposite the solar azimuth by height divided by tangent of solar elevation. The convex hull of the original and shifted rectangle is its flat-ground shadow. Adjacent buildings do not clip or shade one another.

Why is a shadow missing near sunrise or sunset?

At or below zero geometric elevation there is no finite direct-sun ground shadow. Above the horizon, projections longer than 600 meters are reported but omitted from the fixed-scale map and GeoJSON, rather than silently shortened.

Does the UTC offset follow daylight-saving rules automatically?

No. Enter the actual fixed offset for that local date, for example +09:00. The tool does not infer a time zone name or daylight-saving transition; compare a different offset if local civil rules changed.

Is the output suitable for surveying or architectural compliance?

No. The small-area east/north-to-WGS84 conversion is equirectangular, assumes flat ground and ignores surrounding obstructions. Latitude at or beyond 89.9 degrees and longitudes close to the antimeridian are rejected. Use professional geospatial and solar analysis for site decisions.

Are location and building inputs sent to a server?

No. Calculation and file creation happen locally in your browser tab, without a map-tile API.

Privacy

The location, date and building values stay in this browser tab. The tool uses no external map tiles and makes no input-upload request.

References

Related Tools

Terrain Viewshed LabCoordinate Reference LabGeoJSON Map EditorWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →