osmgl 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/osmgl.d.cts CHANGED
@@ -1367,16 +1367,27 @@ interface ModelLayerSpec {
1367
1367
  /** Прятать здание, которое модель заменяет (`replaces` + `anchor: replace`). */
1368
1368
  maskReplaced?: boolean;
1369
1369
  /**
1370
- * Показывать модели СРАЗУ во всей подробности, с самого нижнего зума.
1370
+ * Полная геометрия (lod0) с самого нижнего зума, без упрощённой ступени.
1371
1371
  *
1372
- * По умолчанию у порога показа объект получает упрощённую геометрию (lod1) и четверть бюджета:
1373
- * на общем плане он занимает считанные пиксели, и подробность там не видна, а трафик и кадр
1374
- * стоит. Флаг отменяет обе поблажки — полный lod0 и полный бюджет на любом зуме.
1372
+ * По умолчанию у порога показа объект получает lod1 и «дорисовывается» до lod0 только через
1373
+ * два зума. На общем плане это незаметно, но если карта показывает объект как достопримечательность,
1374
+ * читается браком: сначала огрублённый силуэт, потом подмена.
1375
1375
  *
1376
- * Включать с открытыми глазами: модели дают около 84 % треугольников кадра, и на широком
1377
- * экране полный набор с нижнего зума — это и загрузка, и память.
1376
+ * Число объектов флаг НЕ трогает — за него отвечает `fullBudget`. Разделены они не для порядка:
1377
+ * замер на боевой карте (Душанбе, z15.2, окно 1551×1346, наклон 55°) показал, что кадр сажает
1378
+ * именно количество, а не подробность — со снятыми обеими поблажками медиана кадра при панораме
1379
+ * была 30–38 мс против 17 мс на z17.8.
1378
1380
  */
1379
1381
  fullDetail?: boolean;
1382
+ /**
1383
+ * Полный бюджет моделей с нижнего зума.
1384
+ *
1385
+ * По умолчанию на пороге показа берётся четверть бюджета, и дальше он плавно растёт до полного
1386
+ * за три зума: на общем плане объект занимает считанные пиксели, и сотня таких объектов стоит
1387
+ * кадра и трафика, ничего не добавляя глазу. Включать на широком экране с осторожностью —
1388
+ * модели дают около 84 % треугольников кадра.
1389
+ */
1390
+ fullBudget?: boolean;
1380
1391
  };
1381
1392
  }
1382
1393
  type StyleLayerSpec = FillLayerSpec | LineLayerSpec | FillExtrusionLayerSpec | SurfaceLayerSpec | SymbolLayerSpec | RasterLayerSpec;
@@ -3896,6 +3907,27 @@ declare class LayerRenderer {
3896
3907
  /** Разобранные поверхности без заменённых фигур. Сбрасывается вместе с `hiddenCut`. */
3897
3908
  private surfaceCut;
3898
3909
  private bucketIds;
3910
+ /**
3911
+ * Собрать дома, разрезанные границей тайла. Зовётся В НАЧАЛЕ КАДРА — и это принципиально.
3912
+ *
3913
+ * Сборка стояла внутри прохода зданий, а раскладка «что прятать в каком тайле»
3914
+ * (`syncHiddenStamp`) считается раньше. В одном и том же кадре резка шла, значит, по ПРОШЛОЙ
3915
+ * сборке. Пока состав кусков не менялся, разницы не было, но при движении карты тайлы приезжают
3916
+ * и вытесняются постоянно, и кадр получал одно из двух:
3917
+ *
3918
+ * · дом перестал собираться — куски по прошлой раскладке ещё спрятаны, а замены уже нет: на
3919
+ * месте дома ДЫРА, обрезанная ровно по границам тайлов;
3920
+ * · дом начал собираться — замена нарисована, а куски по прошлой раскладке ещё не спрятаны:
3921
+ * две геометрии в одном месте.
3922
+ *
3923
+ * И то и другое живёт один кадр, поэтому и выглядело как «иногда при движении». Теперь сборка и
3924
+ * раскладка считаются в одном порядке, и кадр видит согласованное состояние.
3925
+ *
3926
+ * Слой берём ПЕРВЫЙ подходящий: сборщик один на карту, ключ бакета у него один. Второй объёмный
3927
+ * слой на базовом источнике сборку бы перетирал — но такого в наших стилях нет, а появится —
3928
+ * сломается заметно, а не тихо.
3929
+ */
3930
+ private syncSeams;
3899
3931
  /**
3900
3932
  * Что заменено 3D-моделями. Для заливок и линий — единственный набор, который к ним применим.
3901
3933
  *
package/dist/osmgl.d.ts CHANGED
@@ -1367,16 +1367,27 @@ interface ModelLayerSpec {
1367
1367
  /** Прятать здание, которое модель заменяет (`replaces` + `anchor: replace`). */
1368
1368
  maskReplaced?: boolean;
1369
1369
  /**
1370
- * Показывать модели СРАЗУ во всей подробности, с самого нижнего зума.
1370
+ * Полная геометрия (lod0) с самого нижнего зума, без упрощённой ступени.
1371
1371
  *
1372
- * По умолчанию у порога показа объект получает упрощённую геометрию (lod1) и четверть бюджета:
1373
- * на общем плане он занимает считанные пиксели, и подробность там не видна, а трафик и кадр
1374
- * стоит. Флаг отменяет обе поблажки — полный lod0 и полный бюджет на любом зуме.
1372
+ * По умолчанию у порога показа объект получает lod1 и «дорисовывается» до lod0 только через
1373
+ * два зума. На общем плане это незаметно, но если карта показывает объект как достопримечательность,
1374
+ * читается браком: сначала огрублённый силуэт, потом подмена.
1375
1375
  *
1376
- * Включать с открытыми глазами: модели дают около 84 % треугольников кадра, и на широком
1377
- * экране полный набор с нижнего зума — это и загрузка, и память.
1376
+ * Число объектов флаг НЕ трогает — за него отвечает `fullBudget`. Разделены они не для порядка:
1377
+ * замер на боевой карте (Душанбе, z15.2, окно 1551×1346, наклон 55°) показал, что кадр сажает
1378
+ * именно количество, а не подробность — со снятыми обеими поблажками медиана кадра при панораме
1379
+ * была 30–38 мс против 17 мс на z17.8.
1378
1380
  */
1379
1381
  fullDetail?: boolean;
1382
+ /**
1383
+ * Полный бюджет моделей с нижнего зума.
1384
+ *
1385
+ * По умолчанию на пороге показа берётся четверть бюджета, и дальше он плавно растёт до полного
1386
+ * за три зума: на общем плане объект занимает считанные пиксели, и сотня таких объектов стоит
1387
+ * кадра и трафика, ничего не добавляя глазу. Включать на широком экране с осторожностью —
1388
+ * модели дают около 84 % треугольников кадра.
1389
+ */
1390
+ fullBudget?: boolean;
1380
1391
  };
1381
1392
  }
1382
1393
  type StyleLayerSpec = FillLayerSpec | LineLayerSpec | FillExtrusionLayerSpec | SurfaceLayerSpec | SymbolLayerSpec | RasterLayerSpec;
@@ -3896,6 +3907,27 @@ declare class LayerRenderer {
3896
3907
  /** Разобранные поверхности без заменённых фигур. Сбрасывается вместе с `hiddenCut`. */
3897
3908
  private surfaceCut;
3898
3909
  private bucketIds;
3910
+ /**
3911
+ * Собрать дома, разрезанные границей тайла. Зовётся В НАЧАЛЕ КАДРА — и это принципиально.
3912
+ *
3913
+ * Сборка стояла внутри прохода зданий, а раскладка «что прятать в каком тайле»
3914
+ * (`syncHiddenStamp`) считается раньше. В одном и том же кадре резка шла, значит, по ПРОШЛОЙ
3915
+ * сборке. Пока состав кусков не менялся, разницы не было, но при движении карты тайлы приезжают
3916
+ * и вытесняются постоянно, и кадр получал одно из двух:
3917
+ *
3918
+ * · дом перестал собираться — куски по прошлой раскладке ещё спрятаны, а замены уже нет: на
3919
+ * месте дома ДЫРА, обрезанная ровно по границам тайлов;
3920
+ * · дом начал собираться — замена нарисована, а куски по прошлой раскладке ещё не спрятаны:
3921
+ * две геометрии в одном месте.
3922
+ *
3923
+ * И то и другое живёт один кадр, поэтому и выглядело как «иногда при движении». Теперь сборка и
3924
+ * раскладка считаются в одном порядке, и кадр видит согласованное состояние.
3925
+ *
3926
+ * Слой берём ПЕРВЫЙ подходящий: сборщик один на карту, ключ бакета у него один. Второй объёмный
3927
+ * слой на базовом источнике сборку бы перетирал — но такого в наших стилях нет, а появится —
3928
+ * сломается заметно, а не тихо.
3929
+ */
3930
+ private syncSeams;
3899
3931
  /**
3900
3932
  * Что заменено 3D-моделями. Для заливок и линий — единственный набор, который к ним применим.
3901
3933
  *