@@ -80,10 +80,11 @@ function initLidarControl(): LidarControl {
8080 * Load a point cloud from the given URL.
8181 *
8282 * Initializes the map and LiDAR control if needed, loads the point cloud
83- * data, and updates the UI accordingly.
83+ * data, and updates the UI accordingly. Supports both COPC LAZ files and
84+ * EPT (Entwine Point Tiles) datasets.
8485 *
8586 * Args:
86- * url: The URL of the COPC LAZ file to load.
87+ * url: The URL of the COPC LAZ file or EPT ept.json to load.
8788 */
8889async function loadPointCloud ( url : string ) : Promise < void > {
8990 // Show loading indicator
@@ -117,8 +118,9 @@ async function loadPointCloud(url: string): Promise<void> {
117118 'raster-opacity' : 1 ,
118119 } ,
119120 layout : {
120- visibility : 'none ' , // Hidden by default
121+ visibility : 'visible ' , // Visible by default
121122 } ,
123+ minzoom : 16 ,
122124 } ,
123125 ) ;
124126
@@ -155,8 +157,13 @@ async function loadPointCloud(url: string): Promise<void> {
155157 newUrl . searchParams . set ( 'url' , url ) ;
156158 window . history . pushState ( { } , '' , newUrl . toString ( ) ) ;
157159
158- // Update page title
159- const filename = url . split ( '/' ) . pop ( ) || 'Point Cloud' ;
160+ // Update page title (handle EPT URLs specially)
161+ let filename = url . split ( '/' ) . pop ( ) || 'Point Cloud' ;
162+ if ( filename === 'ept.json' ) {
163+ // For EPT URLs like .../dublin/ept.json, use the parent folder name
164+ const parts = url . split ( '/' ) ;
165+ filename = parts [ parts . length - 2 ] || 'EPT Dataset' ;
166+ }
160167 document . title = `${ filename } - LiDAR Viewer` ;
161168
162169 // Hide form when point cloud is loaded
0 commit comments