UNPKG

@letsnova/potree

Version:

WebGL point cloud viewer

2 lines 3.14 MB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.geopackage=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({"/data/github/geopackage-node/index.js":[function(require,module,exports){var GeoPackage=require("./lib/geopackage"),GeoPackageManager=require("./lib/geoPackageManager"),GeoPackageConnection=require("./lib/db/GeoPackageConnection"),GeoPackageTileRetriever=require("./lib/tiles/retriever"),async=require("async"),SQL=require("sql.js"),reproject=require("reproject"),L=require("leaflet"),fileType=require("file-type");L.Icon.Default.imagePath="node_modules/leaflet/dist/images/";var map=L.map("map",{center:[45,0],zoom:0,worldCopyJump:true});var baseLayer=L.tileLayer("http://mapbox.geointapps.org:2999/v4/mapbox.light/{z}/{x}/{y}.png");baseLayer.addTo(map);var geojsonLayer=L.geoJson();module.exports.loadGeoPackage=function(files){console.log("files",files);var f=files[0];var r=new FileReader;r.onload=function(){var Uints=new Uint8Array(r.result);db=new SQL.Database(Uints);GeoPackageConnection.connectWithDatabase(db,function(err,connection){var geoPackage=new GeoPackage("","",connection);geoPackage.getTileTables(function(err,tables){async.eachSeries(tables,function(table,callback){console.log("tile table",table);geoPackage.getTileDaoWithTableName(table,function(err,tileDao){var maxZoom=tileDao.maxZoom;var minZoom=tileDao.minZoom;var gpr=new GeoPackageTileRetriever(tileDao,256,256);var tableLayer=L.tileLayer.canvas({noWrap:true,minZoom:minZoom,maxZoom:maxZoom});tableLayer.drawTile=function(canvas,tilePoint,zoom){gpr.getTile(tilePoint.x,tilePoint.y,zoom,function(err,tile){console.log("tile",tile);if(tile){var ctx=canvas.getContext("2d");var image=document.createElement("img");image.onload=function(){ctx.drawImage(image,0,0)};image.src=tile}})};tableLayer.addTo(map);callback()})},function(){geoPackage.getFeatureTables(function(err,tables){async.eachSeries(tables,function(table,callback){console.log("table",table);geoPackage.getFeatureDaoWithTableName(table,function(err,featureDao){if(err){return callback()}var features=0;featureDao.getSrs(function(err,srs){featureDao.queryForEach(function(err,row){features++;var currentRow=featureDao.getFeatureRow(row);var geometry=currentRow.getGeometry();var geom=geometry.geometry;var geoJson=geometry.geometry.toGeoJSON();if(srs.definition&&srs.definition!=="undefined"){geoJson=reproject.reproject(geoJson,srs.definition,"EPSG:4326")}geojsonLayer.addData(geoJson)},function(err){console.log("added "+features+" features");callback()})})})},function(){geojsonLayer.addTo(map);geojsonLayer.bringToFront()})})})})})};r.readAsArrayBuffer(f)}},{"./lib/db/GeoPackageConnection":"/data/github/geopackage-node/lib/db/GeoPackageConnection.js","./lib/geoPackageManager":"/data/github/geopackage-node/lib/geoPackageManager.js","./lib/geopackage":"/data/github/geopackage-node/lib/geopackage.js","./lib/tiles/retriever":"/data/github/geopackage-node/lib/tiles/retriever/index.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js","file-type":"/data/github/geopackage-node/node_modules/file-type/index.js",leaflet:"/data/github/geopackage-node/node_modules/leaflet/dist/leaflet-src.js",reproject:"/data/github/geopackage-node/node_modules/reproject/index.js","sql.js":"/data/github/geopackage-node/node_modules/sql.js/js/sql.js"}],"/data/github/geopackage-node/lib/boundingBox.js":[function(require,module,exports){var proj4=require("proj4");var BoundingBox=function(minLongitudeOrBoundingBox,maxLongitude,minLatitude,maxLatitude){if(maxLongitude!==undefined){this.minLongitude=minLongitudeOrBoundingBox;this.maxLongitude=maxLongitude;this.minLatitude=minLatitude;this.maxLatitude=maxLatitude}else{var boundingBox=minLongitudeOrBoundingBox;this.minLongitude=boundingBox.minLongitude;this.maxLongitude=boundingBox.maxLongitude;this.minLatitude=boundingBox.minLatitude;this.maxLatitude=boundingBox.maxLatitude}};module.exports=BoundingBox;BoundingBox.prototype.buildEnvelope=function(){throw new Error("not implemented")};BoundingBox.prototype.equals=function(boundingBox){if(!boundingBox){return false}if(this===boundingBox){return true}return this.maxLatitude===boundingBox.maxLatitude&&this.minLatitude===boundingBox.minLatitude&&this.maxLongitude===boundingBox.maxLongitude&&this.maxLatitude===boundingBox.maxLatitude};BoundingBox.prototype.projectBoundingBox=function(from,to){if(from&&from!=="undefined"&&to&&to!=="undefined"){var toProj=proj4(to);var fromProj=proj4(from);var min=proj4(from,to,[this.minLongitude,this.minLatitude]);var max=proj4(from,to,[this.maxLongitude,this.maxLatitude]);var projected=new BoundingBox(min[0],max[0],min[1],max[1]);return projected}else{return this}}},{proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js"}],"/data/github/geopackage-node/lib/core/contents/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),SpatialReferenceSystemDao=require("../srs").SpatialReferenceSystemDao,TileMatrixDao=require("../../tiles/matrix").TileMatrixDao,TileMatrixSetDao=require("../../tiles/matrixset").TileMatrixSetDao;var util=require("util");var Contents=function(){this.tableName;this.dataType;this.identifier;this.theDescription;this.lastChange;this.minX;this.minY;this.maxX;this.maxY;this.srsId};var ContentsDao=function(db){Dao.call(this,db);this.initializeColumnIndex()};util.inherits(ContentsDao,Dao);ContentsDao.prototype.createObject=function(){return new Contents};ContentsDao.prototype.getProjection=function(contents,callback){this.getSrs(contents,function(err,srs){var srsDao=this.getSpatialReferenceSystemDao();callback(null,srsDao.getProjection(srs))}.bind(this))};ContentsDao.prototype.validateObject=function(object){throw new Error("not implemented")};ContentsDao.prototype.deleteCascade=function(){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithUserTable=function(contents,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithCollection=function(contentsCollection){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithCollectionAndUserTable=function(contentsCollection,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWhere=function(where,whereArgs){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWhereWithUserTable=function(where,whereArgs,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdCascade=function(id){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdCascadeWithUserTable=function(id,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdsCascade=function(idCollection){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdsCascadeWithUserTable=function(idColleciton,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteTable=function(tableName){throw new Error("not implemented")};ContentsDao.prototype.getSrs=function(contents,callback){var dao=this.getSpatialReferenceSystemDao();dao.queryForIdObject(contents.srsId,callback)};ContentsDao.prototype.getGeometryColumns=function(contents,callback){var dao=this.getGeometryColumnsDao();var GeometryColumnsDao=require("../../features/columns").GeometryColumnsDao;dao.queryForEqWithFieldAndValue(GeometryColumnsDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var gc=dao.createObject();dao.populateObjectFromResult(gc,results[0]);callback(err,gc)})};ContentsDao.prototype.getTileMatrixSet=function(contents,callback){var dao=this.getTileMatrixSetDao();dao.queryForEqWithFieldAndValue(TileMatrixSetDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var gc=dao.createObject();dao.populateObjectFromResult(gc,results[0]);callback(err,gc)})};ContentsDao.prototype.getTileMatrix=function(contents,callback){var dao=this.getTileMatrixDao();dao.queryForEqWithFieldAndValue(TileMatrixDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var tileMatricies=[];for(var i=0;i<results.length;i++){var gc=dao.createObject();dao.populateObjectFromResult(gc,results[i]);tileMatricies.push(gc)}callback(err,tileMatricies)})};ContentsDao.prototype.getGeometryColumnsDao=function(){var GeometryColumnsDao=require("../../features/columns").GeometryColumnsDao;return new GeometryColumnsDao(this.connection)};ContentsDao.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};ContentsDao.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};ContentsDao.prototype.getTileMatrixDao=function(){return new TileMatrixDao(this.connection)};Contents.TABLE_NAME="tableName";Contents.DATA_TYPE="dataType";Contents.IDENTIFIER="identifier";Contents.DESCRIPTION="description";Contents.LAST_CHANGE="lastChange";Contents.MIN_X="minX";Contents.MIN_Y="minY";Contents.MAX_X="maxX";Contents.MAX_Y="maxY";Contents.SRS_ID="srsId";ContentsDao.GPKG_CON_TABLE_NAME="gpkg_contents";ContentsDao.GPKG_CON_COLUMN_PK="table_name";ContentsDao.GPKG_CON_COLUMN_TABLE_NAME="table_name";ContentsDao.GPKG_CON_COLUMN_DATA_TYPE="data_type";ContentsDao.GPKG_CON_COLUMN_IDENTIFIER="identifier";ContentsDao.GPKG_CON_COLUMN_DESCRIPTION="description";ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE="last_change";ContentsDao.GPKG_CON_COLUMN_MIN_X="min_x";ContentsDao.GPKG_CON_COLUMN_MIN_Y="min_y";ContentsDao.GPKG_CON_COLUMN_MAX_X="max_x";ContentsDao.GPKG_CON_COLUMN_MAX_Y="max_y";ContentsDao.GPKG_CON_COLUMN_SRS_ID="srs_id";ContentsDao.GPKG_CDT_FEATURES_NAME="features";ContentsDao.GPKG_CDT_TILES_NAME="tiles";ContentsDao.prototype.tableName=ContentsDao.GPKG_CON_TABLE_NAME;ContentsDao.prototype.idColumns=[ContentsDao.GPKG_CON_COLUMN_PK];ContentsDao.prototype.columns=[ContentsDao.GPKG_CON_COLUMN_TABLE_NAME,ContentsDao.GPKG_CON_COLUMN_DATA_TYPE,ContentsDao.GPKG_CON_COLUMN_IDENTIFIER,ContentsDao.GPKG_CON_COLUMN_DESCRIPTION,ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE,ContentsDao.GPKG_CON_COLUMN_MIN_X,ContentsDao.GPKG_CON_COLUMN_MIN_Y,ContentsDao.GPKG_CON_COLUMN_MAX_X,ContentsDao.GPKG_CON_COLUMN_MAX_Y,ContentsDao.GPKG_CON_COLUMN_SRS_ID];ContentsDao.prototype.columnToPropertyMap={};ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_TABLE_NAME]=Contents.TABLE_NAME;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_DATA_TYPE]=Contents.DATA_TYPE;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_IDENTIFIER]=Contents.IDENTIFIER;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_DESCRIPTION]=Contents.DESCRIPTION;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE]=Contents.LAST_CHANGE;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MIN_X]=Contents.MIN_X;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MIN_Y]=Contents.MIN_Y;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MAX_X]=Contents.MAX_X;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MAX_Y]=Contents.MAX_Y;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_SRS_ID]=Contents.SRS_ID;ContentsDao.columnIndexToPropertyMap=[Contents.TABLE_NAME,Contents.DATA_TYPE,Contents.IDENTIFIER,Contents.DESCRIPTION,Contents.LAST_CHANGE,Contents.MIN_X,Contents.MIN_Y,Contents.MAX_X,Contents.MAX_Y,Contents.SRS_ID];module.exports.ContentsDao=ContentsDao;module.exports.Contents=Contents},{"../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js","../../features/columns":"/data/github/geopackage-node/lib/features/columns/index.js","../../tiles/matrix":"/data/github/geopackage-node/lib/tiles/matrix/index.js","../../tiles/matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","../srs":"/data/github/geopackage-node/lib/core/srs/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/core/srs/index.js":[function(require,module,exports){var Dao=require("../../dao/dao");var util=require("util"),proj4=require("proj4");var SpatialReferenceSystem=function(){this.srsName;this.srsId;this.organization;this.organizationCoordsysId;this.definition;this.description};var SpatialReferenceSystemDao=function(connection){Dao.call(this,connection)};util.inherits(SpatialReferenceSystemDao,Dao);SpatialReferenceSystemDao.prototype.createObject=function(){return new SpatialReferenceSystem};SpatialReferenceSystemDao.prototype.getBySrsId=function(srsId,callback){this.queryForIdObject(srsId,callback)};SpatialReferenceSystemDao.prototype.getProjection=function(srs){if(srs.organizationCoordsysId===4326&&(srs.organization==="EPSG"||srs.organization==="epsg")){return proj4("EPSG:4326")}else if(srs.definition&&srs.definition!==""&&srs.definition!=="undefined"){return proj4(srs.definition)}else if(srs.organization&&srs.organizationCoordsysId){return proj4(srs.organization+":"+srs.organizationCoordsysId)}else{return{}}};SpatialReferenceSystemDao.prototype.createWgs84=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createUndefinedCartesian=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createUndefinedGeographic=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createWebMercator=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteCascade=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteCascadeWhere=function(where,whereArgs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteByIdCascade=function(id,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteByIdsCascade=function(id,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getContents=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getGeometryColumns=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getTileMatrixSet=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.tableName="gpkg_spatial_ref_sys";SpatialReferenceSystemDao.COLUMN_SRS_NAME="srs_name";SpatialReferenceSystemDao.COLUMN_SRS_ID="srs_id";SpatialReferenceSystemDao.COLUMN_ID=SpatialReferenceSystemDao.COLUMN_SRS_ID;SpatialReferenceSystemDao.COLUMN_ORGANIZATION="organization";SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID="organization_coordsys_id";SpatialReferenceSystemDao.COLUMN_DEFINITION="definition";SpatialReferenceSystemDao.COLUMN_DESCRIPTION="description";SpatialReferenceSystem.SRS_NAME="srsName";SpatialReferenceSystem.SRS_ID="srsId";SpatialReferenceSystem.ORGANIZATION="organization";SpatialReferenceSystem.ORGANIZATION_COORDSYS_ID="organizationCoordsysId";SpatialReferenceSystem.DEFINITION="definition";SpatialReferenceSystem.DESCRIPTION="description";SpatialReferenceSystemDao.prototype.idColumns=[SpatialReferenceSystemDao.COLUMN_SRS_ID];SpatialReferenceSystemDao.prototype.columns=[SpatialReferenceSystemDao.COLUMN_SRS_NAME,SpatialReferenceSystemDao.COLUMN_SRS_ID,SpatialReferenceSystemDao.COLUMN_ORGANIZATION,SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID,SpatialReferenceSystemDao.COLUMN_DEFINITION,SpatialReferenceSystemDao.COLUMN_DESCRIPTION];SpatialReferenceSystemDao.prototype.columnToPropertyMap={};SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_SRS_NAME]=SpatialReferenceSystem.SRS_NAME;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_SRS_ID]=SpatialReferenceSystem.SRS_ID;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_ORGANIZATION]=SpatialReferenceSystem.ORGANIZATION;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID]=SpatialReferenceSystem.ORGANIZATION_COORDSYS_ID;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_DEFINITION]=SpatialReferenceSystem.DEFINITION;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_DESCRIPTION]=SpatialReferenceSystem.DESCRIPTION;module.exports.SpatialReferenceSystemDao=SpatialReferenceSystemDao;module.exports.SpatialReferenceSystem=SpatialReferenceSystem},{"../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js",proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/dao/columnValues.js":[function(require,module,exports){var ColumnValues=function(){this.values={};this.columns=[]};module.exports=ColumnValues;ColumnValues.prototype.count=function(){return Object.keys(this.values).length};ColumnValues.prototype.addColumn=function(column,value){this.columns.push(column);this.values[column]=value};ColumnValues.prototype.getValue=function(column){return this.values[column]}},{}],"/data/github/geopackage-node/lib/dao/dao.js":[function(require,module,exports){var sqliteQueryBuilder=require("../db/sqliteQueryBuilder");var Dao=function(connection){this.connection=connection};Dao.prototype.populateObjectFromResult=function(object,result){if(!result)return;for(var key in this.columnToPropertyMap){object[this.columnToPropertyMap[key]]=result[key]}};Dao.prototype.setValueInObject=function(object,columnName,value){var propertyName=object.columnToPropertyMap[columnName];if(!propertyName){throw new Error("Unsupported column name: "+columnName)}object[propertyName]=value};Dao.prototype.getValueFromObject=function(object,columnName){var propertyName=object.columnIndexToPropertyMap[columnName];if(!propertyName){throw new Error("Unsupported column name: "+columnName)}return object[property]};Dao.prototype.isTableExists=function(callback){this.connection.get("SELECT name FROM sqlite_master WHERE type='table' AND name=?",[this.tableName],function(err,results){if(!results){return callback(new Error("Table "+this.tableName+" does not exist"),false)}return callback(err,results)})};Dao.prototype.queryForIdObject=function(id,callback){var whereString=this.buildPkWhereWithValue(id);var whereArgs=this.buildPkWhereArgsWithValue(id);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);this.connection.get(query,whereArgs,function(err,result){if(err)return callback(err);if(!result)return callback();var object=this.createObject();this.populateObjectFromResult(object,result);callback(err,object)}.bind(this))};Dao.prototype.queryForAll=function(callback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName);this.connection.all(query,callback)};Dao.prototype.queryForEach=function(rowCallback,callback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName);this.connection.each(query,rowCallback,callback)};Dao.prototype.queryForFieldValues=function(fieldValues,rowCallback,callback){var whereString=this.buildWhereWithFields(fieldValues);var whereArgs=this.buildWhereArgsWithValues(fieldValues);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);this.connection.each(query,whereArgs,rowCallback,callback)};Dao.prototype.queryWhereWithArgsDistinct=function(where,whereArgs,rowCallback,doneCallback){var query=sqliteQueryBuilder.buildQuery(true,this.tableName,undefined,where,undefined,undefined,undefined,undefined);this.connection.each(query,whereArgs,rowCallback,doneCallback)};Dao.prototype.queryWhereWithArgs=function(where,whereArgs,rowCallback,doneCallback){this.queryWhere(where,whereArgs,undefined,undefined,undefined,undefined,rowCallback,doneCallback)};Dao.prototype.queryWhere=function(where,whereArgs,groupBy,having,orderBy,limit,rowCallback,doneCallback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,where,groupBy,having,orderBy,limit);this.connection.each(query,whereArgs,rowCallback,doneCallback)};Dao.prototype.buildPkWhereWithValue=function(idValue){return this.buildWhereWithFieldAndValue(this.idColumns[0],idValue)};Dao.prototype.buildPkWhereArgsWithValue=function(idValue){return this.buildWhereArgsWithValue(idValue)};Dao.prototype.buildPkWhereWithValues=function(idValuesArray){};Dao.prototype.buildPkWhereArgsWithValues=function(idValuesArray){};Dao.prototype.buildWhereWithFields=function(fields){return this.buildWhereWithFieldsAndOperation(fields,"and")};Dao.prototype.buildWhereWithFieldsAndOperation=function(fields,operation){var whereString="";for(var i=0;i<fields.columns.length;i++){var column=fields.columns[i];if(i){whereString+=" "+operation+" "}whereString+=this.buildWhereWithFieldAndValue(column,fields.getValue(column))}return whereString};Dao.prototype.buildWhereArgsWithValue=function(value){var args=[];if(value!==undefined||value!==null){args.push(value)}return args};Dao.prototype.buildWhereArgsWithValueArray=function(values){var args=[];for(var i=0;i<values.length;i++){var value=values[i];if(value!==undefined&&value!==null){args.push(value)}}return args.count?null:args};Dao.prototype.buildWhereArgsWithValues=function(values){var args=[];for(var i=0;i<values.columns.length;i++){var column=values.columns[i];var value=values.getValue(column);if(value!==undefined&&value!==null){args.push(value)}}return args.count?null:args};Dao.prototype.buildWhereWithFieldAndValue=function(field,value){return this.buildWhereWithFieldAndValueAndOperation(field,value,"=")};Dao.prototype.buildWhereWithFieldAndValueAndOperation=function(field,value,operation){var whereString=""+field+" ";if(value===undefined||value===null){whereString+="is null"}else{whereString+=operation+" ?"}return whereString};Dao.prototype.queryForEqWithFieldAndValue=function(field,value,callback1,callback2){this.queryForEqWithField(field,value,undefined,undefined,undefined,callback1,callback2)};Dao.prototype.queryForEqWithField=function(field,value,groupBy,having,orderBy,callback1,callback2){var whereString=this.buildWhereWithFieldAndValue(field,value);var whereArgs=this.buildWhereArgsWithValue(value);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);if(callback2){this.connection.each(query,whereArgs,callback1,callback2)}else{this.connection.all(query,whereArgs,callback1)}};Dao.prototype.initializeColumnIndex=function(){this.columnIndex={};for(var i=0;i<this.columns.length;i++){this.columnIndex[this.columns[i]]=i}};Dao.prototype.getId=function(object){return this.getValueFromObjectWithColumnName(object,this.idColumns[0])};Dao.prototype.getValueFromObjectWithColumnName=function(object,column){return this.getValueFromObject(object,this.columnIndex[column])};Dao.prototype.minOfColumn=function(column,where,whereArgs,callback){this.connection.minOfColumn(this.tableName,column,where,whereArgs,callback)};Dao.prototype.maxOfColumn=function(column,where,whereArgs,callback){this.connection.maxOfColumn(this.tableName,column,where,whereArgs,callback)};module.exports=Dao},{"../db/sqliteQueryBuilder":"/data/github/geopackage-node/lib/db/sqliteQueryBuilder.js"}],"/data/github/geopackage-node/lib/db/GeoPackageConnection.js":[function(require,module,exports){(function(process){var GeoPackageConnection=function(filePath,callback){if(typeof process!=="undefined"&&process.version){this.adapterCreator=require("./sqliteAdapter")}else{this.adapterCreator=require("./sqljsAdapter")}if(filePath){this.adapterCreator.createAdapter(filePath,function(err,adapter){this.adapter=adapter;callback(err,this)}.bind(this))}else{callback(null,this)}};GeoPackageConnection.prototype.getDBConnection=function(){return this.adapter.db};GeoPackageConnection.prototype.setDBConnection=function(db){this.adapter=this.adapterCreator.createAdapterFromDb(db)};GeoPackageConnection.prototype.get=function(sql,params,callback){this.adapter.get(sql,params,callback)};GeoPackageConnection.prototype.prepare=function(){this.adapter.prepare(arguments)};GeoPackageConnection.prototype.all=function(sql,params,callback){if(typeof params==="function"){callback=params;params=[]}this.adapter.all(sql,params,callback)};GeoPackageConnection.prototype.each=function(sql,params,eachCallback,doneCallback){if(typeof params==="function"){doneCallback=eachCallback;eachCallback=params;params=[]}if(!doneCallback)doneCallback=function(){};this.adapter.each(sql,params,eachCallback,doneCallback)};GeoPackageConnection.prototype.minOfColumn=function(table,column,where,whereArgs,callback){var minStatement="select min("+column+") as min from "+table;if(where){minStatement+=" ";if(where.indexOf("where")){where="where "+where}minStatement+=where}this.adapter.get(minStatement,whereArgs,function(err,result){if(err||!result)return callback(err);callback(err,result.min)})};GeoPackageConnection.prototype.maxOfColumn=function(table,column,where,whereArgs,callback){var maxStatement="select max("+column+") as max from "+table;if(where){maxStatement+=" ";if(where.indexOf("where")){where="where "+where}maxStatement+=where}this.adapter.get(maxStatement,whereArgs,function(err,result){if(err||!result)return callback(err);callback(err,result.max)})};module.exports=GeoPackageConnection;GeoPackageConnection.connect=function(filePath,callback){new GeoPackageConnection(filePath,callback)};GeoPackageConnection.connectWithDatabase=function(db,callback){new GeoPackageConnection(undefined,function(err,connection){connection.setDBConnection(db);callback(err,connection)})}}).call(this,require("_process"))},{"./sqliteAdapter":"/data/github/geopackage-node/lib/db/sqliteAdapter.js","./sqljsAdapter":"/data/github/geopackage-node/lib/db/sqljsAdapter.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/lib/db/dataTypes.js":[function(require,module,exports){module.exports.GPKG_DT_BOOLEAN_NAME="BOOLEAN";module.exports.GPKG_DT_TINYINT_NAME="TINYINT";module.exports.GPKG_DT_SMALLINT_NAME="SMALLINT";module.exports.GPKG_DT_MEDIUMINT_NAME="MEDIUMINT";module.exports.GPKG_DT_INT_NAME="INT";module.exports.GPKG_DT_INTEGER_NAME="INTEGER";module.exports.GPKG_DT_FLOAT_NAME="FLOAT";module.exports.GPKG_DT_DOUBLE_NAME="DOUBLE";module.exports.GPKG_DT_REAL_NAME="REAL";module.exports.GPKG_DT_TEXT_NAME="TEXT";module.exports.GPKG_DT_BLOB_NAME="BLOB";module.exports.GPKG_DT_DATE_NAME="DATE";module.exports.GPKG_DT_DATETIME_NAME="DATETIME";module.exports.GPKG_DT_GEOMETRY_NAME="GEOMETRY";module.exports.GPKGDataType={};module.exports.GPKGDataType[module.exports.GPKG_DT_BOOLEAN_NAME]=0;module.exports.GPKGDataType[module.exports.GPKG_DT_TINYINT_NAME]=1;module.exports.GPKGDataType[module.exports.GPKG_DT_SMALLINT_NAME]=2;module.exports.GPKGDataType[module.exports.GPKG_DT_MEDIUMINT_NAME]=3;module.exports.GPKGDataType[module.exports.GPKG_DT_INT_NAME]=4;module.exports.GPKGDataType[module.exports.GPKG_DT_INTEGER_NAME]=5;module.exports.GPKGDataType[module.exports.GPKG_DT_FLOAT_NAME]=6;module.exports.GPKGDataType[module.exports.GPKG_DT_DOUBLE_NAME]=7;module.exports.GPKGDataType[module.exports.GPKG_DT_REAL_NAME]=8;module.exports.GPKGDataType[module.exports.GPKG_DT_TEXT_NAME]=9;module.exports.GPKGDataType[module.exports.GPKG_DT_BLOB_NAME]=10;module.exports.GPKGDataType[module.exports.GPKG_DT_DATE_NAME]=11;module.exports.GPKGDataType[module.exports.GPKG_DT_DATETIME_NAME]=12;module.exports.GPKGDataType[module.exports.GPKG_DT_GEOMETRY_NAME]=13;module.exports.GPKGDataType.GPKG_DT_BOOLEAN=0;module.exports.GPKGDataType.GPKG_DT_TINYINT=1;module.exports.GPKGDataType.GPKG_DT_SMALLINT=2;module.exports.GPKGDataType.GPKG_DT_MEDIUMINT=3;module.exports.GPKGDataType.GPKG_DT_INT=4;module.exports.GPKGDataType.GPKG_DT_INTEGER=5;module.exports.GPKGDataType.GPKG_DT_FLOAT=6;module.exports.GPKGDataType.GPKG_DT_DOUBLE=7;module.exports.GPKGDataType.GPKG_DT_REAL=8;module.exports.GPKGDataType.GPKG_DT_TEXT=9;module.exports.GPKGDataType.GPKG_DT_BLOB=10;module.exports.GPKGDataType.GPKG_DT_DATE=11;module.exports.GPKGDataType.GPKG_DT_DATETIME=12;module.exports.GPKGDataType.GPKG_DT_GEOMETRY=13;module.exports.name=function(dataType){var name=undefined;switch(dataType){case module.exports.GPKGDataType.GPKG_DT_BOOLEAN:name=module.exports.GPKG_DT_BOOLEAN_NAME;break;case module.exports.GPKGDataType.GPKG_DT_TINYINT:name=module.exports.GPKG_DT_TINYINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_SMALLINT:name=module.exports.GPKG_DT_SMALLINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_MEDIUMINT:name=module.exports.GPKG_DT_MEDIUMINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_INT:name=module.exports.GPKG_DT_INT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_INTEGER:name=module.exports.GPKG_DT_INTEGER_NAME;break;case module.exports.GPKGDataType.GPKG_DT_FLOAT:name=module.exports.GPKG_DT_FLOAT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DOUBLE:name=module.exports.GPKG_DT_DOUBLE_NAME;break;case module.exports.GPKGDataType.GPKG_DT_REAL:name=module.exports.GPKG_DT_REAL_NAME;break;case module.exports.GPKGDataType.GPKG_DT_TEXT:name=module.exports.GPKG_DT_TEXT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_BLOB:name=module.exports.GPKG_DT_BLOB_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DATE:name=module.exports.GPKG_DT_DATE_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DATETIME:name=module.exports.GPKG_DT_DATETIME_NAME;break;case module.exports.GPKGDataType.GPKG_DT_GEOMETRY:name=module.exports.GPKG_DT_GEOMETRY_NAME;break}return name};module.exports.fromName=function(name){var value=-1;if(name){value=module.exports.GPKGDataType[name]}return value}},{}],"/data/github/geopackage-node/lib/db/geoPackageConnection.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/lib/db/GeoPackageConnection.js"][0].apply(exports,arguments)},{"./sqliteAdapter":"/data/github/geopackage-node/lib/db/sqliteAdapter.js","./sqljsAdapter":"/data/github/geopackage-node/lib/db/sqljsAdapter.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/lib/db/sqliteAdapter.js":[function(require,module,exports){module.exports.createAdapter=function(filePath,callback){var sqlite3=require("sqlite3").verbose();var db=new sqlite3.Database(filePath,function(err){if(err){console.log("cannot open "+filePath);return callback(err)}var adapter=new Adapter(db);callback(err,adapter)})};module.exports.createAdapterFromDb=function(db){return new Adapter(db)};function Adapter(db){this.db=db}Adapter.prototype.getDBConnection=function(){return this.db};Adapter.prototype.get=function(sql,params,callback){this.db.get.apply(this.db,arguments)};Adapter.prototype.prepare=function(){this.db.prepare.apply(this.db,arguments)};Adapter.prototype.all=function(sql,params,callback){this.db.all.apply(this.db,arguments)};Adapter.prototype.each=function(sql,params,eachCallback,doneCallback){this.db.each.apply(this.db,arguments)}},{sqlite3:false}],"/data/github/geopackage-node/lib/db/sqliteQueryBuilder.js":[function(require,module,exports){module.exports.buildQuery=function(distinct,tables,columns,where,groupBy,having,orderBy,limit){var query="";if(isEmpty(groupBy)&&!isEmpty(having)){ throw new Error("Illegal Arguments: having clauses require a groupBy clause")}query+="select ";if(distinct){query+="distinct "}if(columns&&columns.length){query=appendColumnsToString(columns,query)}else{query+="* "}query+="from "+tables;query=appendClauseToString(query," where ",where);query=appendClauseToString(query," group by ",groupBy);query=appendClauseToString(query," having ",having);query=appendClauseToString(query," order by ",orderBy);query=appendClauseToString(query," limit ",limit);return query};function appendClauseToString(string,name,clause){if(clause){string+=name+clause}return string}function appendColumnsToString(columns,string){string+=columns[0];for(var i=1;i<columns.length;i++){string+=", "+column}string+=" ";return string}function isEmpty(string){return!string||string.length===0}},{}],"/data/github/geopackage-node/lib/db/sqljsAdapter.js":[function(require,module,exports){module.exports.createAdapter=function(filePath,callback){var fs=require("fs");var sqljs=require("sql.js");fs.readFile(filePath,function(err,fileBuffer){var db=new sqljs.Database(fileBuffer);var adapter=new Adapter(db);callback(err,adapter)})};module.exports.createAdapterFromDb=function(db){return new Adapter(db)};function Adapter(db){this.db=db}Adapter.prototype.getDBConnection=function(){return this.db};Adapter.prototype.get=function(sql,params,callback){if(typeof params==="function"){callback=params;params=[]}var statement=this.db.prepare(sql);statement.bind(params);var hasResult=statement.step();var row;if(hasResult){row=statement.getAsObject()}statement.free();callback(null,row)};Adapter.prototype.prepare=function(){this.db.prepare.apply(this.db,arguments)};Adapter.prototype.all=function(sql,params,callback){var rows=[];this.each(sql,params,function(err,row){rows.push(row)},function(err){callback(err,rows)})};Adapter.prototype.each=function(sql,params,eachCallback,doneCallback){if(typeof params==="function"){doneCallback=eachCallback;eachCallback=params;params=[]}rowCallback=function(row){if(eachCallback){eachCallback(null,row)}};this.db.each(sql,params,rowCallback,doneCallback)}},{fs:"/data/github/geopackage-node/node_modules/browserify/lib/_empty.js","sql.js":"/data/github/geopackage-node/node_modules/sql.js/js/sql.js"}],"/data/github/geopackage-node/lib/features/columns/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),SpatialReferenceSystemDao=require("../../core/srs").SpatialReferenceSystemDao,ContentsDao=require("../../core/contents").ContentsDao,Contents=require("../../core/contents").Contents;var util=require("util");var GeometryColumns=function(){this.tableName;this.columnName;this.geometryTypeName;this.srs;this.srsId;this.z;this.m};var GeometryColumnsDao=function(connection){Dao.call(this,connection);this.initializeColumnIndex()};util.inherits(GeometryColumnsDao,Dao);GeometryColumnsDao.prototype.createObject=function(){return new GeometryColumns};GeometryColumnsDao.prototype.queryForTableName=function(tableName,callback){this.queryForEqWithFieldAndValue(GeometryColumnsDao.COLUMN_TABLE_NAME,tableName,function(err,results){if(results&&results.length){var gc=this.createObject();this.populateObjectFromResult(gc,results[0]);return callback(err,gc)}return callback(err)}.bind(this))};GeometryColumnsDao.prototype.getFeatureTables=function(callback){var tableNames=[];this.connection.each("select "+GeometryColumnsDao.COLUMN_TABLE_NAME+" from "+this.tableName,function(err,result){if(err)return callback(err);tableNames.push(result[GeometryColumnsDao.COLUMN_TABLE_NAME])},function(err,numberOfResults){callback(err,tableNames)})};GeometryColumnsDao.prototype.getSrs=function(geometryColumns,callback){var dao=this.getSpatialReferenceSystemDao();return dao.queryForIdObject(geometryColumns.srsId,callback)};GeometryColumnsDao.prototype.getContents=function(geometryColumns,callback){var dao=this.getContentsDao();return dao.queryForIdObject(geometryColumns.tableName,callback)};GeometryColumnsDao.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};GeometryColumnsDao.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};GeometryColumnsDao.prototype.getProjection=function(projectionObject,callback){this.getSrs(projectionObject,function(err,srs){var srsDao=this.getSpatialReferenceSystemDao();var projection=srsDao.getProjection(srs);callback(null,projection)}.bind(this))};GeometryColumnsDao.COLUMN_TABLE_NAME="table_name";GeometryColumnsDao.COLUMN_COLUMN_NAME="column_name";GeometryColumnsDao.COLUMN_ID_1=GeometryColumnsDao.COLUMN_TABLE_NAME;GeometryColumnsDao.COLUMN_ID_2=GeometryColumnsDao.COLUMN_COLUMN_NAME;GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME="geometry_type_name";GeometryColumnsDao.COLUMN_SRS_ID="srs_id";GeometryColumnsDao.COLUMN_Z="z";GeometryColumnsDao.COLUMN_M="m";GeometryColumnsDao.prototype.tableName="gpkg_geometry_columns";GeometryColumnsDao.prototype.idColumns=[GeometryColumnsDao.COLUMN_ID_1,GeometryColumnsDao.COLUMN_ID_2];GeometryColumnsDao.prototype.columns=[GeometryColumnsDao.COLUMN_TABLE_NAME,GeometryColumnsDao.COLUMN_COLUMN_NAME,GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME,GeometryColumnsDao.COLUMN_SRS_ID,GeometryColumnsDao.COLUMN_Z,GeometryColumnsDao.COLUMN_M];GeometryColumns.TABLE_NAME="tableName";GeometryColumns.COLUMN_NAME="columnName";GeometryColumns.GEOMETRY_TYPE_NAME="geometryTypeName";GeometryColumns.SRS_ID="srsId";GeometryColumns.Z="z";GeometryColumns.M="m";GeometryColumnsDao.prototype.columnToPropertyMap={};GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_TABLE_NAME]=GeometryColumns.TABLE_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_COLUMN_NAME]=GeometryColumns.COLUMN_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME]=GeometryColumns.GEOMETRY_TYPE_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_SRS_ID]=GeometryColumns.SRS_ID;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_Z]=GeometryColumns.Z;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_M]=GeometryColumns.M;module.exports.GeometryColumnsDao=GeometryColumnsDao;module.exports.GeometryColumns=GeometryColumns},{"../../core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","../../core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureColumn.js":[function(require,module,exports){var UserColumn=require("../../user/userColumn"),DataTypes=require("../../db/dataTypes");var util=require("util");var FeatureColumn=function(index,name,dataType,max,notNull,defaultValue,primaryKey,geometryType){UserColumn.call(this,index,name,dataType,max,notNull,defaultValue,primaryKey);this.geometryType=geometryType;if(!geometryType&&dataType===DataTypes.GPKG_DT_GEOMETRY){throw new Error("Data or Geometry Type is required to create column: "+name)}};util.inherits(FeatureColumn,UserColumn);FeatureColumn.createPrimaryKeyColumnWithIndexAndName=function(index,name){return new FeatureColumn(index,name,DataTypes.GPKG_DT_INTEGER,undefined,true,undefined,true,0)};FeatureColumn.createGeometryColumn=function(index,name,type,notNull,defaultValue){return new FeatureColumn(index,name,DataTypes.GPKG_DT_GEOMETRY,undefined,notNull,defaultValue,false,type)};FeatureColumn.createColumnWithIndex=function(index,name,type,notNull,defaultValue){return FeatureColumn.createColumnWithIndexAndMax(index,name,type,undefined,notNull,defaultValue)};FeatureColumn.createColumnWithIndexAndMax=function(index,name,type,max,notNull,defaultValue){return new FeatureColumn(index,name,type,max,notNull,defaultValue,false,0)};FeatureColumn.prototype.isGeometry=function(){return this.geometryType!==undefined};module.exports=FeatureColumn},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/userColumn":"/data/github/geopackage-node/lib/user/userColumn.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureDao.js":[function(require,module,exports){var UserDao=require("../../user/UserDao"),GeometryColumnsDao=require("../columns").GeometryColumnsDao,FeatureRow=require("./featureRow");var util=require("util");var FeatureDao=function(db,table,geometryColumns,metadataDb){UserDao.call(this,db,table);this.geometryColumns=geometryColumns;this.metadataDb=metadataDb;var dao=this.getGeometryColumnsDao()};util.inherits(FeatureDao,UserDao);FeatureDao.prototype.createObject=function(){return this.newRow()};FeatureDao.prototype.getFeatureTable=function(){return this.table};FeatureDao.prototype.getFeatureRow=function(results){return this.getRow(results)};FeatureDao.prototype.newRowWithColumnTypes=function(columnTypes,values){return new FeatureRow(this.getFeatureTable(),columnTypes,values)};FeatureDao.prototype.newRow=function(){return new FeatureRow(this.getFeatureTable())};FeatureDao.prototype.getGeometryColumnName=function(){return this.geometryColumns.columnName};FeatureDao.prototype.getGeometryType=function(){return this.geometryColumns.getGeometryType()};FeatureDao.prototype.getGeometryColumnsDao=function(){return new GeometryColumnsDao(this.connection)};FeatureDao.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};FeatureDao.prototype.getSrs=function(callback){this.getGeometryColumnsDao().getSrs(this.geometryColumns,callback)};FeatureDao.prototype.getBoundingBox=function(){return undefined};module.exports=FeatureDao},{"../../user/UserDao":"/data/github/geopackage-node/lib/user/UserDao.js","../columns":"/data/github/geopackage-node/lib/features/columns/index.js","./featureRow":"/data/github/geopackage-node/lib/features/user/featureRow.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureRow.js":[function(require,module,exports){var UserRow=require("../../user/UserRow"),FeatureColumn=require("./featureColumn"),GeometryData=require("../../geom/geometryData");var util=require("util");var FeatureRow=function(featureTable,columnTypes,values){UserRow.call(this,featureTable,columnTypes,values);this.featureTable=featureTable};util.inherits(FeatureRow,UserRow);FeatureRow.prototype.getGeometryColumnIndex=function(){return this.featureTable.geometryIndex};FeatureRow.prototype.getGeometryColumn=function(){return this.featureTable.getGeometryColumn()};FeatureRow.prototype.getGeometry=function(){return this.getValueWithIndex(this.featureTable.geometryIndex)};FeatureRow.prototype.setGeometry=function(geometryData){};FeatureRow.prototype.toObjectValue=function(index,value){var objectValue=value;var column=this.getColumnWithIndex(index);if(column.isGeometry()&&value){objectValue=new GeometryData(value)}return objectValue};module.exports=FeatureRow},{"../../geom/geometryData":"/data/github/geopackage-node/lib/geom/geometryData.js","../../user/UserRow":"/data/github/geopackage-node/lib/user/UserRow.js","./featureColumn":"/data/github/geopackage-node/lib/features/user/featureColumn.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureTable.js":[function(require,module,exports){var UserTable=require("../../user/userTable");var util=require("util");var FeatureTable=function(tableName,columns){UserTable.call(this,tableName,columns);var geometry=undefined;for(var i=0;i<columns.length;i++){var column=columns[i];if(column.isGeometry()){this.duplicateCheck(column.index,geometry,"GEOMETRY");geometry=column.index}}this.missingCheck(geometry,"GEOMETRY");this.geometryIndex=geometry};util.inherits(FeatureTable,UserTable);FeatureTable.prototype.getGeometryColumn=function(){return this.getColumnWithIndex(this.geometryIndex)};module.exports=FeatureTable},{"../../user/userTable":"/data/github/geopackage-node/lib/user/userTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureTableReader.js":[function(require,module,exports){var UserTableReader=require("../../user/UserTableReader"),FeatureTable=require("./featureTable"),FeatureColumn=require("./featureColumn"),GeometryColumnsDao=require("../columns").GeometryColumnsDao,DataTypes=require("../../db/dataTypes"),wkb=require("../../wkb");var util=require("util");var FeatureTableReader=function(tableNameOrGeometryColumns){if(util.isString(tableNameOrGeometryColumns)){UserTableReader.call(this,tableNameOrGeometryColumns)}else{UserTableReader.call(this,tableNameOrGeometryColumns.tableName);this.geometryColumns=tableNameOrGeometryColumns}};util.inherits(FeatureTableReader,UserTableReader);FeatureTableReader.prototype.readFeatureTable=function(db,callback){if(!this.geometryColumns){new GeometryColumnsDao(db).queryForTableName(this.tableName,function(err,geometryColumns){this.geometryColumns=geometryColumns;this.readTable(db,callback)}.bind(this))}else{this.readTable(db,callback)}};FeatureTableReader.prototype.createTableWithNameAndColumns=function(tableName,columns){return new FeatureTable(tableName,columns)};FeatureTableReader.prototype.createColumnWithResults=function(results,index,name,type,max,notNull,defaultValueIndex,primaryKey){var geometry=name===this.geometryColumns.columnName;var geometryType=undefined;var dataType=undefined;if(geometry){geometryType=wkb.fromName(type)}else{dataType=DataTypes.fromName(type)}var defaultValue=undefined;if(defaultValueIndex){}var column=new FeatureColumn(index,name,dataType,max,notNull,defaultValue,primaryKey,geometryType);return column};module.exports=FeatureTableReader},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/UserTableReader":"/data/github/geopackage-node/lib/user/UserTableReader.js","../../wkb":"/data/github/geopackage-node/lib/wkb/index.js","../columns":"/data/github/geopackage-node/lib/features/columns/index.js","./featureColumn":"/data/github/geopackage-node/lib/features/user/featureColumn.js","./featureTable":"/data/github/geopackage-node/lib/features/user/featureTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/geoPackage.js":[function(require,module,exports){var SpatialReferenceSystemDao=require("./core/srs").SpatialReferenceSystemDao,GeometryColumnsDao=require("./features/columns").GeometryColumnsDao,FeatureDao=require("./features/user/featureDao"),FeatureTableReader=require("./features/user/featureTableReader"),ContentsDao=require("./core/contents").ContentsDao,TileMatrixSetDao=require("./tiles/matrixset").TileMatrixSetDao,TileMatrixSet=require("./tiles/matrixset").TileMatrixSet,TileMatrixDao=require("./tiles/matrix").TileMatrixDao,TileMatrix=require("./tiles/matrix").TileMatrix,TileTableReader=require("./tiles/user/tileTableReader"),TileDao=require("./tiles/user/tileDao");var async=require("async");var GeoPackage=function(name,path,connection){this.name=name;this.path=path;this.connection=connection};GeoPackage.prototype.getDatabase=function(){return this.connection};GeoPackage.prototype.getPath=function(){return this.path};GeoPackage.prototype.getName=function(){return this.name};GeoPackage.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};GeoPackage.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};GeoPackage.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};GeoPackage.prototype.getTileMatrixDao=function(){return new TileMatrixDao(this.connection)};GeoPackage.prototype.createDao=function(){};GeoPackage.prototype.getSrs=function(srsId){};GeoPackage.prototype.getTileDaoWithTileMatrixSet=function(tileMatrixSet,callback){var tileMatrices=[];var tileMatrixDao=this.getTileMatrixDao();tileMatrixDao.queryForEqWithField(TileMatrixDao.COLUMN_TABLE_NAME,tileMatrixSet.tableName,null,null,TileMatrixDao.COLUMN_ZOOM_LEVEL+" ASC, "+TileMatrixDao.COLUMN_PIXEL_X_SIZE+" DESC, "+TileMatrixDao.COLUMN_PIXEL_Y_SIZE+" DESC",function(err,results){async.eachSeries(results,function(result,callback){var tm=new TileMatrix;tileMatrixDao.populateObjectFromResult(tm,result);tileMatrices.push(tm);callback()},function(err){var tableReader=new TileTableReader(tileMatrixSet);tableReader.readTileTable(this.connection,function(err,tileTable){new TileDao(this.connection,tileTable,tileMatrixSet,tileMatrices,function(err,tileDao){callback(err,tileDao)})}.bind(this))}.bind(this))}.bind(this))};GeoPackage.prototype.getTileDaoWithContents=function(contents,callback){};GeoPackage.prototype.getTileDaoWithTableName=function(tableName,callback){var tms=this.getTileMatrixSetDao();tms.queryForEqWithFieldAndValue(TileMatrixSetDao.COLUMN_TABLE_NAME,tableName,function(err,results){if(results.length>1){return callback(new Error("Unexpected state. More than one Tile Matrix Set matched for table name: "+tableName+", count: "+results.length))}var tileMatrixSet=new TileMatrixSet;tms.populateObjectFromResult(tileMatrixSet,results[0]);this.getTileDaoWithTileMatrixSet(tileMatrixSet,callback)}.bind(this))};GeoPackage.prototype.getTileTables=function(callback){var tms=this.getTileMatrixSetDao();tms.isTableExists(function(err,exists){if(!exists){return callback(null,[])}tms.getTileTables(callback)})};GeoPackage.prototype.getFeatureTables=function(callback){var gcd=this.getGeometryColumnsDao();gcd.isTableExists(function(err,exists){if(!exists){return callback(null,[])}gcd.getFeatureTables(callback)})};GeoPackage.prototype.getGeometryColumnsDao=function(){return new GeometryColumnsDao(this.connection)};GeoPackage.prototype.getFeatureDaoWithGeometryColumns=functi