map: more minor fixes
parent
4b462a1da6
commit
36f32da13f
|
@ -42,8 +42,9 @@ trait TimelineQueryMap
|
||||||
$lat = $query->createFunction('AVG(c.lat) AS lat');
|
$lat = $query->createFunction('AVG(c.lat) AS lat');
|
||||||
$lon = $query->createFunction('AVG(c.lon) AS lon');
|
$lon = $query->createFunction('AVG(c.lon) AS lon');
|
||||||
$count = $query->createFunction('COUNT(m.fileid) AS count');
|
$count = $query->createFunction('COUNT(m.fileid) AS count');
|
||||||
|
$update = $query->createFunction('MAX(c.last_update) as u');
|
||||||
|
|
||||||
$query->select($lat, $lon, $count)
|
$query->select($lat, $lon, $update, $count)
|
||||||
->from('memories_mapclusters', 'c')
|
->from('memories_mapclusters', 'c')
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -80,6 +81,7 @@ trait TimelineQueryMap
|
||||||
(float) $cluster['lon'],
|
(float) $cluster['lon'],
|
||||||
],
|
],
|
||||||
'count' => (float) $cluster['count'],
|
'count' => (float) $cluster['count'],
|
||||||
|
'u' => (int) $cluster['u'],
|
||||||
];
|
];
|
||||||
if (\array_key_exists('id', $cluster)) {
|
if (\array_key_exists('id', $cluster)) {
|
||||||
$c['id'] = (int) $cluster['id'];
|
$c['id'] = (int) $cluster['id'];
|
||||||
|
|
|
@ -72,6 +72,7 @@ trait TimelineWriteMap
|
||||||
->set('lon_sum', $query->createFunction("lon_sum + {$lon}"))
|
->set('lon_sum', $query->createFunction("lon_sum + {$lon}"))
|
||||||
->set('lat', $query->createFunction('lat_sum / point_count'))
|
->set('lat', $query->createFunction('lat_sum / point_count'))
|
||||||
->set('lon', $query->createFunction('lon_sum / point_count'))
|
->set('lon', $query->createFunction('lon_sum / point_count'))
|
||||||
|
->set('last_update', $query->createNamedParameter(time(), IQueryBuilder::PARAM_INT))
|
||||||
->where($query->expr()->eq('id', $query->createNamedParameter($clusterId, IQueryBuilder::PARAM_INT)))
|
->where($query->expr()->eq('id', $query->createNamedParameter($clusterId, IQueryBuilder::PARAM_INT)))
|
||||||
;
|
;
|
||||||
$query->executeStatement();
|
$query->executeStatement();
|
||||||
|
@ -87,6 +88,7 @@ trait TimelineWriteMap
|
||||||
'lon_sum' => $query->createNamedParameter($lon, IQueryBuilder::PARAM_STR),
|
'lon_sum' => $query->createNamedParameter($lon, IQueryBuilder::PARAM_STR),
|
||||||
'lat' => $query->createNamedParameter($lat, IQueryBuilder::PARAM_STR),
|
'lat' => $query->createNamedParameter($lat, IQueryBuilder::PARAM_STR),
|
||||||
'lon' => $query->createNamedParameter($lon, IQueryBuilder::PARAM_STR),
|
'lon' => $query->createNamedParameter($lon, IQueryBuilder::PARAM_STR),
|
||||||
|
'last_update' => $query->createNamedParameter(time(), IQueryBuilder::PARAM_INT),
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
$query->executeStatement();
|
$query->executeStatement();
|
||||||
|
@ -107,6 +109,7 @@ trait TimelineWriteMap
|
||||||
->set('lon_sum', $query->createFunction("lon_sum - {$lon}"))
|
->set('lon_sum', $query->createFunction("lon_sum - {$lon}"))
|
||||||
->set('lat', $query->createFunction('lat_sum / point_count'))
|
->set('lat', $query->createFunction('lat_sum / point_count'))
|
||||||
->set('lon', $query->createFunction('lon_sum / point_count'))
|
->set('lon', $query->createFunction('lon_sum / point_count'))
|
||||||
|
->set('last_update', $query->createNamedParameter(time(), IQueryBuilder::PARAM_INT))
|
||||||
->where($query->expr()->eq('id', $query->createNamedParameter($clusterId, IQueryBuilder::PARAM_INT)))
|
->where($query->expr()->eq('id', $query->createNamedParameter($clusterId, IQueryBuilder::PARAM_INT)))
|
||||||
;
|
;
|
||||||
$query->executeStatement();
|
$query->executeStatement();
|
||||||
|
|
|
@ -98,6 +98,10 @@ class Version401100Date20230208181533 extends SimpleMigrationStep
|
||||||
'notnull' => false,
|
'notnull' => false,
|
||||||
'default' => null,
|
'default' => null,
|
||||||
]);
|
]);
|
||||||
|
$table->addColumn('last_update', Types::INTEGER, [
|
||||||
|
'notnull' => false,
|
||||||
|
'default' => null,
|
||||||
|
]);
|
||||||
|
|
||||||
$table->setPrimaryKey(['id']);
|
$table->setPrimaryKey(['id']);
|
||||||
$table->addIndex(['lat', 'lon'], 'memories_clst_ll_idx');
|
$table->addIndex(['lat', 'lon'], 'memories_clst_ll_idx');
|
||||||
|
|
|
@ -882,10 +882,10 @@ export default defineComponent({
|
||||||
.top-bar {
|
.top-bar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
right: 60px;
|
right: min(60px, 10%);
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
max-width: 100vw;
|
max-width: 80%;
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
box-shadow: 0 0 2px gray;
|
box-shadow: 0 0 2px gray;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
@ -907,6 +907,7 @@ export default defineComponent({
|
||||||
right: unset;
|
right: unset;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
|
max-width: 100vw;
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
padding-top: 3px;
|
padding-top: 3px;
|
||||||
|
|
|
@ -339,7 +339,7 @@ export default defineComponent({
|
||||||
await this.$nextTick();
|
await this.$nextTick();
|
||||||
|
|
||||||
// Check if hash has changed
|
// Check if hash has changed
|
||||||
const viewerIsOpen = (this.$refs.viewer as any).isOpen;
|
const viewerIsOpen = (this.$refs.viewer as any)?.isOpen;
|
||||||
if (
|
if (
|
||||||
from?.hash !== to.hash &&
|
from?.hash !== to.hash &&
|
||||||
to.hash?.startsWith("#v") &&
|
to.hash?.startsWith("#v") &&
|
||||||
|
|
|
@ -44,6 +44,7 @@ const ATTRIBUTION =
|
||||||
|
|
||||||
type IMarkerCluster = {
|
type IMarkerCluster = {
|
||||||
id?: number;
|
id?: number;
|
||||||
|
u?: any;
|
||||||
center: [number, number];
|
center: [number, number];
|
||||||
count: number;
|
count: number;
|
||||||
};
|
};
|
||||||
|
@ -113,7 +114,11 @@ export default defineComponent({
|
||||||
},
|
},
|
||||||
|
|
||||||
clusterPreviewUrl(cluster: IMarkerCluster) {
|
clusterPreviewUrl(cluster: IMarkerCluster) {
|
||||||
return API.MAP_CLUSTER_PREVIEW(cluster.id);
|
let url = API.MAP_CLUSTER_PREVIEW(cluster.id);
|
||||||
|
if (cluster.u) {
|
||||||
|
url += `?u=${cluster.u}`;
|
||||||
|
}
|
||||||
|
return url;
|
||||||
},
|
},
|
||||||
|
|
||||||
zoomTo(center: [number, number]) {
|
zoomTo(center: [number, number]) {
|
||||||
|
@ -141,7 +146,7 @@ export default defineComponent({
|
||||||
.preview {
|
.preview {
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 48px;
|
height: 48px;
|
||||||
background-color: #fff;
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition: transform 0.2s;
|
transition: transform 0.2s;
|
||||||
|
|
Loading…
Reference in New Issue