Input: two supplied image crops (regular 100x84, southern 200x175); source restricted to D:\GIS\GIS\yuanlingPic3 tiles plus D:\GIS\GIS\planet_110.059,28.258_110.744,28.625-shp\shpOutput.zip local road data. Bounds used: [110.328749941417,28.3917230659234,110.465779226663,28.4913038992907]. No application files changed or app server started.
regular-z19.jpg is a 5x5 mosaic, z19 x422924..422928; top-to-bottom TMS y305380..305376. Its center pixel (640,640) is 110.40058136 E, 28.44122326 N. regular-in-south-best.jpg is the visually matching crop at image scale; regular-reference-upscaled.png enlarges the reference without smoothing. Local OSM residential access roads lie about 33 and 42 m from the estimated center (osm_id 1285336549 and 1285336551).southern-same-size.jpg (200x175, matching reference dimensions): broad N-S road dividing west and east apartment groups, reddish cleared ground west and southwest, short transverse road, curved subdivision lanes NE, darker taller blocks SE. southern-z19.jpg supplies detailed source context. Local OSM S228/龙兴路 segments are approximately 54..66 m from provisional center.southern-z18.jpg montage covers x211458..211471 and top-to-bottom TMS y152692..152679.tile-mosaic.ps1 stitches the locally stored files into north-up imagery; despite .png filenames, tile bytes are JPEG. For example from workspace root:
& '.\.scratch\gis-investigation-subagent\tile-mosaic.ps1' -Zoom 19 -Bounds 110.3993,28.4399,110.4018,28.4425 -MaxWidth 3000 -Output '.\.scratch\gis-investigation-subagent\regular-z19-repro.jpg'
The drawing loops increasing Google/slippy y downward and reads disk TMS y as 2^zoom - 1 - googleY; thus TMS rows DECREASE down the image. For mosaic pixel (px,py) with tileX0, googleY0, tile output size 256 px (no downscale): X=tileX0+px/256, Y=googleY0+py/256, lon=360*X/2^zoom-180, lat=atan(sinh(pi*(1-2*Y/2^zoom)))*180/pi. If output is downscaled, divide pixels by the actual displayed tile size instead of 256. For regular-z19.jpg, tileX0=422924, googleY0=218907, top disk TMS row=305380. Optional crop.cjs uses the installed Jimp package for visual crops; match-crops.cjs and coarse-search.cjs contain exploratory correlation scans, not proof of a southern point.