Add support for text-variable-anchor-offset property (#2921)

Co-authored-by: Yingfang Wang <junew@microsoft.com>
Co-authored-by: Alexey Kon <48697757+random3940@users.noreply.github.com>
This commit is contained in:
wangyingfang
2024-10-28 19:15:54 +08:00
committed by GitHub
parent 90a798bfee
commit 1a63194078
192 changed files with 5931 additions and 107 deletions

View File

@@ -379,6 +379,7 @@ list(APPEND INCLUDE_FILES
${PROJECT_SOURCE_DIR}/include/mbgl/style/transition_options.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/types.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/undefined.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/variable_anchor_offset_collection.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/text/glyph.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/text/glyph_range.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/tile/tile_id.hpp
@@ -864,6 +865,7 @@ list(APPEND SRC_FILES
${PROJECT_SOURCE_DIR}/src/mbgl/style/style_impl.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/style_impl.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/types.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/variable_anchor_offset_collection.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_layer_render_parameters.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/custom_layer_factory.cpp

View File

@@ -511,6 +511,7 @@ MLN_CORE_SOURCE = [
"src/mbgl/style/style_impl.cpp",
"src/mbgl/style/style_impl.hpp",
"src/mbgl/style/types.cpp",
"src/mbgl/style/variable_anchor_offset_collection.cpp",
"src/mbgl/text/bidi.hpp",
"src/mbgl/text/check_max_angle.cpp",
"src/mbgl/text/check_max_angle.hpp",
@@ -802,6 +803,7 @@ MLN_CORE_HEADERS = [
"include/mbgl/style/transition_options.hpp",
"include/mbgl/style/types.hpp",
"include/mbgl/style/undefined.hpp",
"include/mbgl/style/variable_anchor_offset_collection.hpp",
"include/mbgl/text/glyph.hpp",
"include/mbgl/text/glyph_range.hpp",
"include/mbgl/tile/tile_id.hpp",

View File

@@ -2,6 +2,7 @@
#include <mbgl/style/conversion.hpp>
#include <mbgl/style/types.hpp>
#include <mbgl/style/variable_anchor_offset_collection.hpp>
#include <mbgl/util/color.hpp>
#include <mbgl/util/enum.hpp>
#include <mbgl/util/padding.hpp>
@@ -50,6 +51,11 @@ struct Converter<Padding> {
std::optional<Padding> operator()(const Convertible& value, Error& error) const;
};
template <>
struct Converter<VariableAnchorOffsetCollection> {
std::optional<VariableAnchorOffsetCollection> operator()(const Convertible& value, Error& error) const;
};
template <size_t N>
struct Converter<std::array<float, N>> {
std::optional<std::array<float, N>> operator()(const Convertible& value, Error& error) const;

View File

@@ -320,6 +320,13 @@ struct ValueFactory<Padding> {
static Value make(const Padding& padding) { return padding.serialize(); }
};
template <>
struct ValueFactory<VariableAnchorOffsetCollection> {
static Value make(const VariableAnchorOffsetCollection& variableAnchorOffset) {
return variableAnchorOffset.serialize();
}
};
template <typename T>
struct ValueFactory<T, typename std::enable_if_t<(!std::is_enum_v<T> && !is_linear_container<T>::value)>> {
static Value make(const T& arg) { return {arg}; }
@@ -370,6 +377,9 @@ StyleProperty makeStyleProperty(const PropertyValue<T>& value) {
[](const Undefined&) -> StyleProperty { return {}; },
[](const Color& c) -> StyleProperty { return {makeValue(c), StyleProperty::Kind::Expression}; },
[](const Padding& p) -> StyleProperty { return {makeValue(p), StyleProperty::Kind::Expression}; },
[](const VariableAnchorOffsetCollection& v) -> StyleProperty {
return {makeValue(v), StyleProperty::Kind::Expression};
},
[](const PropertyExpression<T>& fn) -> StyleProperty {
return {fn.getExpression().serialize(), StyleProperty::Kind::Expression};
},

View File

@@ -43,6 +43,8 @@ std::unique_ptr<Expression> boolean(std::unique_ptr<Expression>, std::unique_ptr
std::unique_ptr<Expression> toColor(std::unique_ptr<Expression>, std::unique_ptr<Expression> def = nullptr);
std::unique_ptr<Expression> toPadding(std::unique_ptr<Expression> value, std::unique_ptr<Expression> def = nullptr);
std::unique_ptr<Expression> toVariableAnchorOffset(std::unique_ptr<Expression>,
std::unique_ptr<Expression> def = nullptr);
std::unique_ptr<Expression> toString(std::unique_ptr<Expression>, std::unique_ptr<Expression> def = nullptr);
std::unique_ptr<Expression> toFormatted(std::unique_ptr<Expression>, std::unique_ptr<Expression> def = nullptr);
std::unique_ptr<Expression> toImage(std::unique_ptr<Expression>, std::unique_ptr<Expression> def = nullptr);

View File

@@ -50,6 +50,12 @@ struct PaddingType {
bool operator==(const PaddingType&) const { return true; }
};
struct VariableAnchorOffsetCollectionType {
constexpr VariableAnchorOffsetCollectionType() = default;
std::string getName() const { return "variableAnchorOffsetCollection"; }
bool operator==(const VariableAnchorOffsetCollectionType&) const { return true; }
};
struct ObjectType {
constexpr ObjectType() = default;
std::string getName() const { return "object"; }
@@ -92,6 +98,7 @@ constexpr StringType String;
constexpr BooleanType Boolean;
constexpr ColorType Color;
constexpr PaddingType Padding;
constexpr VariableAnchorOffsetCollectionType VariableAnchorOffsetCollection;
constexpr ValueType Value;
constexpr ObjectType Object;
constexpr CollatorType Collator;
@@ -107,6 +114,7 @@ using Type = variant<NullType,
StringType,
ColorType,
PaddingType,
VariableAnchorOffsetCollectionType,
ObjectType,
ValueType,
mapbox::util::recursive_wrapper<Array>,

View File

@@ -7,6 +7,7 @@
#include <mbgl/style/position.hpp>
#include <mbgl/style/rotation.hpp>
#include <mbgl/style/types.hpp>
#include <mbgl/style/variable_anchor_offset_collection.hpp>
#include <mbgl/util/color.hpp>
#include <mbgl/util/enum.hpp>
#include <mbgl/util/feature.hpp>
@@ -28,6 +29,7 @@ using ValueBase = variant<NullValue,
double,
std::string,
Color,
VariableAnchorOffsetCollection,
Collator,
Formatted,
Image,

View File

@@ -20,6 +20,7 @@
<% } -%>
<% if (type === 'symbol') { -%>
#include <mbgl/style/expression/formatted.hpp>
#include <mbgl/style/variable_anchor_offset_collection.hpp>
<% } -%>
#include <mbgl/util/color.hpp>

View File

@@ -8,6 +8,7 @@
#include <mbgl/style/filter.hpp>
#include <mbgl/style/property_value.hpp>
#include <mbgl/style/expression/formatted.hpp>
#include <mbgl/style/variable_anchor_offset_collection.hpp>
#include <mbgl/util/color.hpp>
#include <vector>
@@ -184,6 +185,10 @@ public:
const PropertyValue<std::vector<TextVariableAnchorType>>& getTextVariableAnchor() const;
void setTextVariableAnchor(const PropertyValue<std::vector<TextVariableAnchorType>>&);
static PropertyValue<VariableAnchorOffsetCollection> getDefaultTextVariableAnchorOffset();
const PropertyValue<VariableAnchorOffsetCollection>& getTextVariableAnchorOffset() const;
void setTextVariableAnchorOffset(const PropertyValue<VariableAnchorOffsetCollection>&);
static PropertyValue<std::vector<TextWritingModeType>> getDefaultTextWritingMode();
const PropertyValue<std::vector<TextWritingModeType>>& getTextWritingMode() const;
void setTextWritingMode(const PropertyValue<std::vector<TextWritingModeType>>&);

View File

@@ -0,0 +1,61 @@
#pragma once
#include <mbgl/style/types.hpp>
#include <mbgl/util/feature.hpp>
#include <mbgl/util/geometry.hpp>
#include <array>
#include <string>
#include <vector>
namespace mbgl {
struct AnchorOffsetPair {
style::SymbolAnchorType anchorType;
std::array<float, 2> offset;
AnchorOffsetPair(style::SymbolAnchorType anchorType_, std::array<float, 2> offset_)
: anchorType(anchorType_),
offset(offset_) {}
bool operator==(const AnchorOffsetPair& other) const = default;
};
class VariableAnchorOffsetCollection {
private:
using CollectionType = std::vector<AnchorOffsetPair>;
CollectionType anchorOffsets;
public:
VariableAnchorOffsetCollection() = default;
VariableAnchorOffsetCollection(const VariableAnchorOffsetCollection& other) = default;
VariableAnchorOffsetCollection(VariableAnchorOffsetCollection&& other) noexcept = default;
VariableAnchorOffsetCollection(std::vector<AnchorOffsetPair>&& values) { anchorOffsets = std::move(values); }
std::array<float, 2> getOffsetByAnchor(const style::SymbolAnchorType& anchorType) const;
std::string toString() const;
mbgl::Value serialize() const;
bool empty() const { return anchorOffsets.size() == 0; }
CollectionType::size_type size() const { return anchorOffsets.size(); }
CollectionType::const_iterator begin() const { return anchorOffsets.begin(); }
CollectionType::const_iterator end() const { return anchorOffsets.end(); }
const AnchorOffsetPair& operator[](size_t index) const { return anchorOffsets[index]; }
VariableAnchorOffsetCollection& operator=(const VariableAnchorOffsetCollection& other) = default;
VariableAnchorOffsetCollection& operator=(VariableAnchorOffsetCollection&& other) noexcept = default;
bool operator==(const VariableAnchorOffsetCollection& other) const = default;
};
} // namespace mbgl

View File

@@ -3,8 +3,12 @@
#include <mbgl/style/expression/value.hpp>
#include <mbgl/style/position.hpp>
#include <mbgl/style/rotation.hpp>
#include <mbgl/style/types.hpp>
#include <mbgl/style/variable_anchor_offset_collection.hpp>
#include <mbgl/util/enum.hpp>
#include <mbgl/util/color.hpp>
#include <mbgl/util/range.hpp>
#include <mbgl/util/string.hpp>
#include <array>
#include <vector>
@@ -143,6 +147,36 @@ public:
}
};
template <>
struct Interpolator<VariableAnchorOffsetCollection> {
public:
VariableAnchorOffsetCollection operator()(const VariableAnchorOffsetCollection& a,
const VariableAnchorOffsetCollection& b,
const float t) const {
if (a.size() != b.size()) {
throw std::runtime_error("Cannot interpolate values of different length. from: " + a.toString() +
", to: " + b.toString());
}
std::vector<AnchorOffsetPair> offsetMap;
offsetMap.reserve(a.size());
for (size_t index = 0; index < a.size(); index++) {
const auto& aPair = a[index];
const auto& bPair = b[index];
if (aPair.anchorType != bPair.anchorType) {
throw std::runtime_error(
"Cannot interpolate values containing mismatched anchors. index: " + util::toString(index) +
"from: " + Enum<style::SymbolAnchorType>::toString(aPair.anchorType) +
", to: " + Enum<style::SymbolAnchorType>::toString(bPair.anchorType));
}
auto offset = std::array<float, 2>{interpolate(aPair.offset[0], bPair.offset[0], t),
interpolate(aPair.offset[1], bPair.offset[1], t)};
offsetMap.emplace_back(aPair.anchorType, offset);
}
return VariableAnchorOffsetCollection(std::move(offsetMap));
}
};
template <>
struct Interpolator<style::Rotation> {
public:

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
8,
13,
37,
1,
[
90448,
90448
],
[
100366,
100366
],
[
1337984,
1337984
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
4,
686859
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
1,
5,
9,
1,
[
52212,
52212
],
[
5494,
5494
],
[
73024,
73024
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
28467,
28467
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
28467,
28467
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
6,
19,
1,
[
32043,
32043
],
[
422,
422
],
[
4928,
4928
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
12,
27,
1,
[
215680,
215680
],
[
406,
406
],
[
3744,
3744
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
32566,
32566
],
[
433984,
433984
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
10870,
10870
],
[
144704,
144704
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
11,
1,
[
33209,
33209
],
[
118,
118
],
[
768,
768
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1198157
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
7,
17,
1,
[
171106,
171106
],
[
22450,
22450
],
[
264688,
264688
]
]
]
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -0,0 +1,66 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"icon-image": "motorway_lg_6",
"icon-text-fit": "both",
"icon-text-fit-padding": [5, 5, 5, 5],
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -0,0 +1,65 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"allowed": 0.003
}
},
"center": [
13.418056,
52.501000
],
"zoom": 16,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-allow-overlap": true,
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 1],
"bottom", [0, -1],
"left", [1, 0],
"right", [-1, 0],
"top-left", [1, 1],
"top-right", [-1, 1],
"bottom-left", [1, -1],
"bottom-right", [-1, -1]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,122 @@
{
"version": 8,
"metadata": {
"test": {
"description": "All 8 anchor positions specified, custom offsets to distinguish top-left and bottom-right",
"height": 128,
"width": 128
}
},
"center": [ 0, 0 ],
"zoom": 0,
"sources": {
"point": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
}
]
}
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "text",
"type": "symbol",
"source": "point",
"layout": {
"text-field": "x",
"text-size": 20,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 1],
"bottom", [0, -1],
"left", [1, 0],
"right", [-1, 0],
"top-left", [1, 1],
"top-right", [-0.5, 1],
"bottom-left", [0.5, -1],
"bottom-right", [-1, -1]
],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
]
}
},
{
"id": "anchor",
"type": "circle",
"source": "point",
"paint" :{
"circle-color": "#f00",
"circle-radius": 4
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,56 @@
{
"version": 8,
"metadata": {
"test": {
"width": 240,
"height": 100
}
},
"sources": {
"geojson": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": { },
"geometry": { "type": "Point", "coordinates": [-30, 0] }
}, {
"type": "Feature",
"properties": { "tvao": ["top", [0, -4.5]] },
"geometry": { "type": "Point", "coordinates": [0, 0] }
}, {
"type": "Feature",
"properties": { "tvao": ["right", [4.5, 0]] },
"geometry": { "type": "Point", "coordinates": [30, 0] }
}
]
}
}
},
"sprite": "local://sprites/2x",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [{
"id": "bg",
"type": "background",
"paint": {
"background-color": "#ccc"
}
}, {
"id": "test",
"type": "symbol",
"source": "geojson",
"layout": {
"icon-image": "icon",
"text-field": "Label",
"text-size": 10,
"text-justify": "auto",
"text-variable-anchor-offset": ["coalesce", ["get", "tvao"], ["literal", ["left", [-4.5, 0]]]],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,56 @@
{
"version": 8,
"metadata": {
"test": {
"width": 240,
"height": 100
}
},
"sources": {
"geojson": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": { "x": 0},
"geometry": { "type": "Point", "coordinates": [-30, 0] }
}, {
"type": "Feature",
"properties": { "x": 5},
"geometry": { "type": "Point", "coordinates": [0, 0] }
}, {
"type": "Feature",
"properties": { "x": 10},
"geometry": { "type": "Point", "coordinates": [30, 0] }
}
]
}
}
},
"sprite": "local://sprites/2x",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [{
"id": "bg",
"type": "background",
"paint": {
"background-color": "#ccc"
}
}, {
"id": "test",
"type": "symbol",
"source": "geojson",
"layout": {
"icon-image": "icon",
"text-field": "Label",
"text-size": 10,
"text-justify": "auto",
"text-variable-anchor-offset": ["interpolate", ["linear"], ["get", "x"], 1, ["literal", ["top", [-3, -3]]], 10, ["literal", ["top", [3, 3]]]],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,73 @@
{
"version": 8,
"metadata": {
"test": {
"height": 128,
"width": 128
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"sources": {
"geojson": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"image": "bank-12"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
-10
]
}
},
{
"type": "Feature",
"properties": {
"image": "bakery-12"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
10
]
}
}
]
}
}
},
"sprite": "local://sprites/sprite",
"layers": [
{
"id": "text",
"type": "symbol",
"source": "geojson",
"layout": {
"icon-image": ["get", "image"],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-justify": "auto",
"text-variable-anchor-offset" : [
"top", [0, 0.5],
"bottom", [0, -0.5],
"left", [0.5, 0],
"right", [-0.5, 0],
"top-left", [0.5, 0.5],
"top-right", [-0.5, 0.5],
"bottom-left", [0.5, -0.5],
"bottom-right", [-0.5, -0.5]
],
"text-field": ["get", "image"]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,103 @@
{
"version": 8,
"metadata": {
"test": {
"height": 128,
"width": 128
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"sources": {
"icon": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}]
}
},
"text": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}, {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [0, 0]
}
}
]
}
}
},
"sprite": "local://sprites/icon-offset",
"layers": [
{
"id": "icon",
"type": "symbol",
"source": "icon",
"layout": {
"icon-anchor": "bottom",
"icon-image": "icon"
}
},
{
"id": "text",
"type": "symbol",
"source": "text",
"layout": {
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-justify": "auto",
"text-variable-anchor-offset" : [
"top", [0, 0.8],
"bottom", [0, -2.5],
"left", [1.2, -1.5],
"right", [-1.2, -1.5],
"top-left", [1.2, 0],
"top-right", [-1.2, 0]
],
"text-field": "Test"
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,67 @@
{
"version": 8,
"metadata": {
"test": {
"height": 128,
"width": 128
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"sources": {
"geojson": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"image": "bank-12"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
-10
]
}
},
{
"type": "Feature",
"properties": {
"image": "bakery-12"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
10
]
}
}
]
}
}
},
"sprite": "local://sprites/sprite",
"layers": [
{
"id": "text",
"type": "symbol",
"source": "geojson",
"layout": {
"icon-image": ["get", "image"],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-justify": "auto",
"text-variable-anchor-offset" : [
"top", [1, 0.5],
"bottom", [-1, -0.5]
],
"text-field": ["get", "image"]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,71 @@
{
"version": 8,
"metadata": {
"test": {
"height": 128,
"width": 128,
"allowed": 0.0075,
"collisionDebug": true
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"sources": {
"geojson": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"image": "motorway_lg_4"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
-10
]
}
},
{
"type": "Feature",
"properties": {
"image": "motorway_lg_6"
},
"geometry": {
"type": "Point",
"coordinates": [
0,
10
]
}
}
]
}
}
},
"sprite": "local://sprites/sprite",
"layers": [
{
"id": "text",
"type": "symbol",
"source": "geojson",
"layout": {
"icon-image": ["get", "image"],
"icon-text-fit": "both",
"icon-text-fit-padding": [8, 8, 8, 8],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-justify": "auto",
"text-variable-anchor-offset" : [
"top-left", [0.5, 0.5],
"bottom-right", [-0.5, -0.5]
],
"text-field": ["get", "image"]
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,89 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"width": 256,
"fadeDuration": 100,
"description": "Start with space for two labels. Zoom out so that second has to switch anchors. Render after half a fade duration, but verify that label has moved the whole way.",
"operations": [
["wait", 100],
["wait", 100],
["setZoom", 0.5],
["wait"],
["wait", 100],
[
"wait",
50
]
]
}
},
"center": [ 0, 0 ],
"zoom": 1.5,
"sources": {
"point": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "First"
},
"geometry": {
"type": "Point",
"coordinates": [ 10, 0 ]
}
},
{
"type": "Feature",
"properties": {
"name": "Second"
},
"geometry": {
"type": "Point",
"coordinates": [ -10, 0 ]
}
}]
}
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "text",
"type": "symbol",
"source": "point",
"layout": {
"text-field": ["get", "name"],
"text-size": 20,
"text-justify": "auto",
"text-variable-anchor-offset": [
"left", [0.5, 0],
"right", [-0.5, 0]
],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
]
}
},
{
"id": "anchor",
"type": "circle",
"source": "point",
"paint" :{
"circle-radius": 2
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,68 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"operations": [
["idle"],
["wait", 500]
]
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"pitch": 60,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 5],
"bottom", [0, -5],
"left", [5, 0],
"right", [-5, 0],
"top-left", [5, 5],
"top-right", [-5, 5],
"bottom-left", [5, -5],
"bottom-right", [-5, -5]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1,69 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"operations": [
["idle"],
["wait", 500]
]
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"pitch": 60,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-pitch-alignment": "map",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -0,0 +1,65 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"operations": [["idle"], ["wait", 300]]
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"pitch": 60,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -0,0 +1,64 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"bearing": 90,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 5],
"bottom", [0, -5],
"left", [5, 0],
"right", [-5, 0],
"top-left", [5, 5],
"top-right", [-5, 5],
"bottom-left", [5, -5],
"bottom-right", [-5, -5]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -0,0 +1,66 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"description": "Note that there are collisions in this example. This is because of the limitation that collision boxes don't rotate; however, their position should still be correct."
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"bearing": 90,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-rotation-alignment": "map",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -0,0 +1,64 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"bearing": 90,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -0,0 +1,63 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test Test Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "left",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,64 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256,
"description": "Single line labels render differently because they use the same glyphs for all justifications."
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"layout": {
"text-field": "Test",
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-max-width": 5,
"text-justify": "auto",
"text-variable-anchor-offset": [
"center", [0, 0],
"top", [0, 0],
"bottom", [0, 0],
"left", [0, 0],
"right", [0, 0],
"top-left", [0, 0],
"top-right", [0, 0],
"bottom-left", [0, 0],
"bottom-right", [0, 0]
]
}
}]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,82 @@
{
"version": 8,
"metadata": {
"test": {
"description": "Even though text-overlap is set to true, all four possible anchor positions are used to avoid unnecessary overlap",
"height": 128,
"width": 128
}
},
"center": [ 0, 0 ],
"zoom": 0,
"sources": {
"point": {
"type": "geojson",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 0, 0 ]
}
}
]
}
}
},
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "text",
"type": "symbol",
"source": "point",
"layout": {
"text-field": "x",
"text-size": 20,
"text-justify": "auto",
"text-allow-overlap": true,
"text-variable-anchor-offset": [
"left", [0.7, 0],
"right", [-0.7, 0],
"top", [0, 0.5],
"bottom", [0, -0.5]
],
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
]
}
},
{
"id": "anchor",
"type": "circle",
"source": "point",
"paint" :{
"circle-radius": 2
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1,74 @@
{
"version": 8,
"metadata": {
"test": {
"height": 256
}
},
"center": [
13.418056,
52.499167
],
"zoom": 14.5,
"sources": {
"maplibre": {
"type": "vector",
"maxzoom": 14,
"tiles": [
"local://tiles/{z}-{x}-{y}.mvt"
]
}
},
"sprite": "local://sprites/sprite",
"glyphs": "local://glyphs/{fontstack}/{range}.pbf",
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "white"
}
},
{
"id": "top",
"type": "symbol",
"source": "maplibre",
"source-layer": "poi_label",
"filter": ["all", [
"==",
"maki",
"restaurant"
]
],
"layout": {
"text-font": [
"Open Sans Semibold",
"Arial Unicode MS Bold"
],
"text-field": ["get", "name"],
"text-size": 12,
"text-justify": "auto",
"text-variable-anchor-offset": [
"top", [0, 0.1],
"bottom", [0, -0.1],
"left", [0.5, 0],
"right", [-0.5, 0]
]
}
},
{
"id": "circles",
"type": "circle",
"source": "maplibre",
"source-layer": "poi_label",
"filter": [
"==",
"maki",
"restaurant"
],
"paint": {
"circle-radius": 2
}
}
]
}

View File

@@ -0,0 +1,9 @@
{
"icon": {
"width": 20,
"height": 32,
"x": 0,
"y": 0,
"pixelRatio": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
8,
13,
37,
1,
[
90448,
90448
],
[
100366,
100366
],
[
1337984,
1337984
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
4,
686859
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
1,
5,
9,
1,
[
52212,
52212
],
[
5494,
5494
],
[
73024,
73024
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
11,
1,
[
33209,
33209
],
[
238,
238
],
[
1648,
1648
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
87036
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
38722,
38722
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
87036
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
38722,
38722
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
28467,
28467
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
86050
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
6,
13,
1,
[
42916,
42916
],
[
322,
322
],
[
4064,
4064
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
28467,
28467
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
6,
19,
1,
[
32043,
32043
],
[
422,
422
],
[
4928,
4928
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
12,
27,
1,
[
215680,
215680
],
[
406,
406
],
[
3744,
3744
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
11,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
21,
21,
1,
[
274384,
274384
],
[
97654,
97654
],
[
1301824,
1301824
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
5,
1004220
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
7,
13,
1,
[
71656,
71656
],
[
48406,
48406
],
[
645184,
645184
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
32566,
32566
],
[
433984,
433984
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
13,
21,
1,
[
143312,
143312
],
[
10870,
10870
],
[
144704,
144704
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
11,
1,
[
33209,
33209
],
[
118,
118
],
[
768,
768
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1198157
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
4,
7,
17,
1,
[
171106,
171106
],
[
22450,
22450
],
[
264688,
264688
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
7,
1778473
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
8,
13,
37,
1,
[
90448,
90448
],
[
100366,
100366
],
[
1337984,
1337984
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
4,
686859
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
1,
5,
9,
1,
[
52212,
52212
],
[
5494,
5494
],
[
73024,
73024
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
1,
84942
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
11,
1,
[
33209,
33209
],
[
238,
238
],
[
1648,
1648
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
87036
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
38722,
38722
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
87036
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
38722,
38722
],
[
238,
238
],
[
2944,
2944
]
]
]
}

View File

@@ -0,0 +1,35 @@
{
"network": [
[
"probeNetwork - default - end",
3,
296601
],
[
"probeNetwork - default - start",
0,
0
]
],
"gfx": [
[
"probeGFX - default - end",
2,
4,
13,
1,
[
28467,
28467
],
[
238,
238
],
[
2944,
2944
]
]
]
}

Some files were not shown because too many files have changed in this diff Show More