In the iterable of the queryForGeoJSONIndexedFeaturesWithBoundingBox method of FeatureDao the id property is ignored when it arrives in the feature from the Geopackage. Only '_feature_id' is taken into account i propose this
for (var key in featureRow.values) {
if (Object.prototype.hasOwnProperty.call(featureRow.values, key) &&
key !== featureRow.geometryColumn.name ) {
if (key.toLowerCase() === 'id' || key.toLowerCase() === '_feature_id') {
geoJson.id = featureRow.values[key];
}
else if (key.toLowerCase() === '_properties_id') {
geoJson.properties[key.substring(12)] = featureRow.values[key];
}
else {
geoJson.properties[columnMap[key].displayName] = featureRow.values[key];
}
}
}
In the iterable of the queryForGeoJSONIndexedFeaturesWithBoundingBox method of FeatureDao the id property is ignored when it arrives in the feature from the Geopackage. Only '_feature_id' is taken into account i propose this