fix: 增加渲染样式

This commit is contained in:
xiaoyan 2023-04-25 15:36:41 +08:00
parent d174c82cb6
commit 58c3ad62c3
7 changed files with 503 additions and 5 deletions

View File

@ -159,7 +159,8 @@ class LoginViewModel @Inject constructor(
Constant.VERSION_ID = userId
Constant.USER_DATA_PATH = Constant.DATA_PATH + Constant.USER_ID + "/" + Constant.VERSION_ID
// 在SD卡创建用户目录解压资源等
val userFolder = File("${Constant.DATA_PATH}/${userId}")
val userFolder = File(Constant.USER_DATA_PATH)
if (!userFolder.exists()) userFolder.mkdirs()
// 初始化Realm
Realm.init(context.applicationContext)
val password = "encryp".encodeToByteArray().copyInto(ByteArray(64))

View File

@ -98,7 +98,8 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks {
override fun onResult(uri: Uri) {
val file = UriUtils.uri2File(uri)
val importOMDBHelper: ImportOMDBHelper = importOMDBHiltFactory.obtainImportOMDBHelper(
val importOMDBHelper: ImportOMDBHelper =
importOMDBHiltFactory.obtainImportOMDBHelper(
requireContext(),
file
)
@ -120,7 +121,7 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks {
R.id.personal_center_menu_test -> {
viewModel.readRealmData()
// 定位到指定位置
niMapController.mMapView.vtmMap.animator().animateTo(GeoPoint(30.21137798479949, 113.84832672274896))
niMapController.mMapView.vtmMap.animator().animateTo(GeoPoint(30.270367985798032, 113.83513667119433))
}
R.id.personal_center_menu_task_list -> {
findNavController().navigate(R.id.TaskListFragment)

View File

@ -1550,8 +1550,103 @@
</m>
</m>
<m k="QIcode">
<m k="qi_table">
<!-- 道路线 -->
<m v="2001"></m>
<m v="OMDB_RD_LINK">
<line stroke="#9c9c9c" width="1"/>
</m>
<!--道路方向-->
<m v="OMDB_RD_LINK_DIRECT">
<m k="direct">
<m v="2">
<lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>
</m>
<m v="3">
<lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>
</m>
</m>
</m>
<!--道路种别-->
<m v="OMDB_RD_LINK_KIND">
<m k="kind">
<m v="1">
<line stroke="#fcacd4" width="1"/>
</m>
<m v="2">
<line stroke="#dcacfc" width="1"/>
</m>
<m v="3">
<line stroke="#fc9c9c" width="1"/>
</m>
<m v="4">
<line stroke="#fcd484" width="1"/>
</m>
<m v="5">
<line stroke="#ecfccc" width="1"/>
</m>
<m v="6">
<line stroke="#acec84" width="1"/>
</m>
<m v="7">
<line stroke="#806048" width="1"/>
</m>
<m v="8">
<line stroke="#fcfc7c" width="1"/>
</m>
<m v="9">
<line stroke="#acc4fc" width="1"/>
</m>
<m v="10">
<line stroke="#8cc8e0" width="1"/>
</m>
<m v="11">
<line stroke="#64ecdc" width="1"/>
</m>
<m v="13">
<line stroke="#585080" width="1"/>
</m>
<m v="15">
<line stroke="#647430" width="1"/>
</m>
</m>
</m>
<!--常规点限速-->
<m v="OMDB_SPEEDLIMIT">
<m k="speedFlag">
<m v="0">
<circle fill="#0000ff" radius="30" scale-radius="true" />
<text k="maxSpeed" use="road"></text>
<text k="minSpeed" dy="30" bg-fill="#00ff00" use="road"></text>
</m>
<m v="1">
<!-- <circle fill="#0000ff" radius="30" scale-radius="true" />-->
<text k="maxSpeed" use="road"></text>
<text k="minSpeed" dy="30" bg-fill="#00ff00" use="road"></text>
</m>
</m>
</m>
<!--条件点限速-->
<m v="OMDB_SPEEDLIMIT_COND">
<m k="direct">
<m v="2">
<lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>
</m>
<m v="3">
<lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>
</m>
</m>
</m>
<!--可变点限速-->
<m v="OMDB_SPEEDLIMIT_VAR">
<m k="direct">
<m v="2">
<lineSymbol src="assets:omdb/oneway_left.svg"></lineSymbol>
</m>
<m v="3">
<lineSymbol src="assets:omdb/oneway_right.svg"></lineSymbol>
</m>
</m>
</m>
</m>
</rendertheme>

View File

@ -0,0 +1,11 @@
<svg width="580" height="580" xmlns="http://www.w3.org/2000/svg" version="1.0">
<metadata id="metadata10"/>
<g>
<title>Layer 1</title>
<g transform="rotate(-179.925 290 290)" id="svg_1">
<path stroke="#ffffff" shape-rendering="auto" filter-blend-mode="normal" stroke-linejoin="round" fill="none" solid-opacity="1" color-interpolation="sRGB" isolation="auto" stroke-width="64" color-rendering="auto" image-rendering="auto" color="#000000" filter-gaussianBlur-deviation="0" color-interpolation-filters="linearRGB" opacity="0.8" solid-color="#000000" mix-blend-mode="normal" d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z" id="path4151"/>
<path fill="#6a6a6a" id="path4136" d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 799 B

View File

@ -0,0 +1,11 @@
<svg width="580" height="580" xmlns="http://www.w3.org/2000/svg" version="1.0">
<metadata id="metadata10"/>
<g>
<title>Layer 1</title>
<g id="svg_1" transform="rotate(-0.400407 290 290)">
<path id="path4151" d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z" mix-blend-mode="normal" solid-color="#000000" opacity="0.8" color-interpolation-filters="linearRGB" filter-gaussianBlur-deviation="0" color="#000000" image-rendering="auto" color-rendering="auto" stroke-width="64" isolation="auto" color-interpolation="sRGB" solid-opacity="1" fill="none" stroke-linejoin="round" filter-blend-mode="normal" shape-rendering="auto" stroke="#ffffff"/>
<path d="m30,261l286,0l0,-72.5l234,101.85l-234,101.15l0,-72.5l-286,0l0,-58z" id="path4136" fill="#6a6a6a"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 800 B

View File

@ -116,6 +116,18 @@ open class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tr
mMapView.updateMap()
// initMapLifeSource()
// 设置矢量图层均在12级以上才显示
mMapView.vtmMap.events.bind(UpdateListener { e, mapPosition ->
if (e == org.oscim.map.Map.SCALE_EVENT) {
// 测评数据图层在指定Zoom后开始显示
val isOmdbZoom = mapPosition.zoomLevel>=Constant.OMDB_MIN_ZOOM
baseGroupLayer?.layers?.forEach {
it.isEnabled = !isOmdbZoom
}
omdbVectorTileLayer.isEnabled = isOmdbZoom
omdbLabelLayer.isEnabled = isOmdbZoom
}
})
}
private fun initOMDBVectorTileLayer() {

View File

@ -0,0 +1,367 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:tns="http://opensciencemap.org/rendertheme"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://opensciencemap.org/rendertheme" xml:lang="en">
<!-- attribute types -->
<xs:simpleType name="cap">
<xs:restriction base="xs:string">
<xs:enumeration value="butt"/>
<xs:enumeration value="round"/>
<xs:enumeration value="square"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="closed">
<xs:restriction base="xs:string">
<xs:enumeration value="yes"/>
<xs:enumeration value="no"/>
<xs:enumeration value="any"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="color">
<xs:restriction base="xs:string">
<xs:pattern value="#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="elementList">
<xs:restriction base="xs:string">
<xs:enumeration value="node"/>
<xs:enumeration value="way"/>
<xs:enumeration value="any"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="selectorList">
<xs:restriction base="xs:string">
<xs:enumeration value="first"/>
<xs:enumeration value="any"/>
<xs:enumeration value="when-matched"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fontFamily">
<xs:restriction base="xs:string">
<xs:enumeration value="default"/>
<xs:enumeration value="default_bold"/>
<xs:enumeration value="monospace"/>
<xs:enumeration value="sans_serif"/>
<xs:enumeration value="serif"/>
<xs:enumeration value="thin"/>
<xs:enumeration value="light"/>
<xs:enumeration value="medium"/>
<xs:enumeration value="black"/>
<xs:enumeration value="condensed"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fontStyle">
<xs:restriction base="xs:string">
<xs:enumeration value="bold"/>
<xs:enumeration value="bold_italic"/>
<xs:enumeration value="italic"/>
<xs:enumeration value="normal"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nonNegativeFloat">
<xs:restriction base="xs:float">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="src">
<xs:restriction base="xs:string">
<xs:pattern value="((file|assets):)?.+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="strokeDasharray">
<xs:restriction base="xs:string">
<xs:pattern
value="([0-9]+(\.[0-9]+)? *, *[0-9]+(\.[0-9]+)? *, *)*[0-9]+(\.[0-9]+)? *, *[0-9]+(\.[0-9]+)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="textKey">
<xs:restriction base="xs:string">
<xs:enumeration value="ele"/>
<xs:enumeration value="addr:housenumber"/>
<xs:enumeration value="addr_housenumber"/> <!-- Mapzen -->
<xs:enumeration value="housenumber"/> <!-- OpenMapTiles -->
<xs:enumeration value="name"/>
<xs:enumeration value="maxSpeed"/><!--最高速度-->
<xs:enumeration value="minSpeed"/><!--最低速度-->
<xs:enumeration value="ref"/>
</xs:restriction>
</xs:simpleType>
<!-- style menu cat element -->
<xs:complexType name="cat">
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<!-- style menu name element -->
<xs:complexType name="name">
<xs:attribute name="lang" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!-- style menu overlay element -->
<xs:complexType name="overlay">
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<!-- style menu layer element -->
<xs:complexType name="layer">
<xs:sequence maxOccurs="1" minOccurs="0">
<xs:element name="name" maxOccurs="unbounded" minOccurs="0" type="tns:name"/>
<xs:element name="cat" maxOccurs="unbounded" minOccurs="0" type="tns:cat"/>
<xs:element name="overlay" maxOccurs="unbounded" minOccurs="0" type="tns:overlay"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="parent" type="xs:string" use="optional"/>
<xs:attribute name="visible" default="false" type="xs:boolean" use="optional"/>
<xs:attribute name="enabled" default="false" type="xs:boolean" use="optional"/>
</xs:complexType>
<!-- rendering instructions -->
<xs:complexType name="area">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="id" default="0" type="xs:string" use="optional"/>
<xs:attribute name="use" default="0" type="xs:string" use="optional"/>
<xs:attribute name="src" type="tns:src" use="optional"/>
<xs:attribute name="symbol-width" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-height" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-percent" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="fill" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke" default="#00000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke-width" default="0" type="tns:nonNegativeFloat" use="optional"/>
<xs:attribute name="fade" default="-1" type="xs:integer" use="optional"/>
<xs:attribute name="blend" default="-1" type="xs:integer" use="optional"/>
<xs:attribute name="blend-fill" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="mesh" default="false" type="xs:boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="caption">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="k" type="tns:textKey" use="required"/>
<xs:attribute name="dy" default="0" type="xs:float" use="optional"/>
<xs:attribute name="font-family" default="default" type="tns:fontFamily" use="optional"/>
<xs:attribute name="style" default="normal" type="tns:fontStyle" use="optional"/>
<xs:attribute name="size" default="0" type="tns:nonNegativeFloat" use="optional"/>
<xs:attribute name="bg-fill" default="#00000000" type="tns:color" use="optional"/>
<xs:attribute name="fill" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke-width" default="0" type="tns:nonNegativeFloat" use="optional"/>
<!-- polygon area expressed as a ratio to tile area, e.g. 0.1 for 10% of tile area -->
<xs:attribute name="area-size" default="0" type="tns:nonNegativeFloat" use="optional"/>
<!-- priority for label placement, 0 = highest priority -->
<xs:attribute name="priority" default="0" type="xs:integer" use="optional"/>
<!-- symbol src name -->
<xs:attribute name="symbol" type="tns:src" use="optional"/>
<xs:attribute name="symbol-width" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-height" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-percent" type="xs:positiveInteger" use="optional"/>
</xs:complexType>
<xs:complexType name="circle">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="radius" type="tns:nonNegativeFloat" use="required"/>
<xs:attribute name="scale-radius" default="false" type="xs:boolean" use="optional"/>
<xs:attribute name="fill" default="#00000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke" default="#00000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke-width" default="0" type="tns:nonNegativeFloat" use="optional"/>
</xs:complexType>
<xs:complexType name="line">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<!-- style: TODO only in style-line-->
<xs:attribute name="id" default="0" type="xs:string" use="optional"/>
<!-- inherited style -->
<xs:attribute name="use" default="0" type="xs:string" use="optional"/>
<xs:attribute name="src" type="tns:src" use="optional"/>
<xs:attribute name="symbol-width" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-height" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-percent" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="stroke" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="width" default="0" type="xs:float" use="optional"/>
<!-- minimum scaled width to draw outline -->
<xs:attribute name="min" default="0" type="xs:float" use="optional"/>
<xs:attribute name="dasharray" type="tns:strokeDasharray" use="optional"/>
<xs:attribute name="cap" default="round" type="tns:cap" use="optional"/>
<xs:attribute name="outline" default="" type="xs:string" use="optional"/>
<xs:attribute name="fade" default="-1" type="xs:integer" use="optional"/>
<xs:attribute name="blur" default="-1" type="xs:float" use="optional"/>
<xs:attribute name="fix" default="false" type="xs:boolean" use="optional"/>
<xs:attribute name="repeat-gap" default="200" type="xs:float" use="optional"/>
<xs:attribute name="repeat-start" default="30" type="xs:float" use="optional"/>
<!-- stipple repeat in 'pixel' -->
<xs:attribute name="stipple" default="0" type="xs:integer" use="optional"/>
<!-- stipple color -->
<xs:attribute name="stipple-stroke" default="#000000" type="tns:color" use="optional"/>
<!-- stipple width relative to line width, i.e 0.0-1.0 -->
<xs:attribute name="stipple-width" default="0" type="xs:float" use="optional"/>
</xs:complexType>
<xs:complexType name="text">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="id" default="0" type="xs:string" use="optional"/>
<xs:attribute name="use" default="0" type="xs:string" use="optional"/>
<xs:attribute name="k" default="name" type="tns:textKey" use="optional"/>
<xs:attribute name="dy" default="0" type="xs:float" use="optional"/>
<xs:attribute name="font-family" default="default" type="tns:fontFamily" use="optional"/>
<xs:attribute name="style" default="normal" type="tns:fontStyle" use="optional"/>
<xs:attribute name="size" default="0" type="tns:nonNegativeFloat" use="optional"/>
<xs:attribute name="bg-fill" default="#00000000" type="tns:color" use="optional"/>
<xs:attribute name="fill" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke" default="#000000" type="tns:color" use="optional"/>
<xs:attribute name="stroke-width" default="0" type="tns:nonNegativeFloat" use="optional"/>
<xs:attribute name="caption" default="false" type="xs:boolean" use="optional"/>
<!-- polygon area expressed as a ratio to tile area, e.g. 0.1 for 10% of tile area -->
<xs:attribute name="area-size" default="0" type="tns:nonNegativeFloat" use="optional"/>
<!-- priority for label placement, 0 = highest priority -->
<xs:attribute name="priority" default="0" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="symbol">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="id" default="0" type="xs:string" use="optional"/>
<xs:attribute name="use" default="0" type="xs:string" use="optional"/>
<xs:attribute name="src" type="tns:src" use="optional"/>
<xs:attribute name="symbol-width" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-height" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="symbol-percent" type="xs:positiveInteger" use="optional"/>
<!-- symbols on lines -->
<xs:attribute name="billboard" default="false" type="xs:boolean" use="optional"/>
<xs:attribute name="repeat" default="false" type="xs:boolean" use="optional"/>
<xs:attribute name="repeat-gap" default="200" type="xs:float" use="optional"/>
<xs:attribute name="repeat-start" default="30" type="xs:float" use="optional"/>
<xs:attribute name="rotate" default="true" type="xs:boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="extrusion">
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="line-color" type="tns:color" use="optional"/>
<xs:attribute name="side-color" type="tns:color" use="required"/>
<xs:attribute name="top-color" type="tns:color" use="required"/>
<xs:attribute name="hsv-h" default="0" type="xs:double" use="optional"/>
<xs:attribute name="hsv-s" default="1" type="xs:double" use="optional"/>
<xs:attribute name="hsv-v" default="1" type="xs:double" use="optional"/>
<!-- 12m default -->
<xs:attribute name="default-height" default="12" type="xs:positiveInteger" use="optional"/>
</xs:complexType>
<!-- match elements -->
<xs:complexType name="m">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<!-- recursion to allow for nested m -->
<xs:element name="m" type="tns:m"/>
<xs:element name="area" type="tns:area"/>
<xs:element name="caption" type="tns:caption"/>
<xs:element name="circle" type="tns:circle"/>
<xs:element name="line" type="tns:line"/>
<xs:element name="outline" type="tns:line"/>
<xs:element name="lineSymbol" type="tns:line"/>
<xs:element name="text" type="tns:text"/>
<xs:element name="extrusion" type="tns:extrusion"/>
<xs:element name="symbol" type="tns:symbol"/>
<!-- outline is defined within rules to match layering -->
<xs:element name="outline-layer" type="tns:line"/>
</xs:choice>
<xs:attribute name="select" default="any" type="tns:selectorList" use="optional"/>
<xs:attribute name="e" type="tns:elementList" use="optional"/>
<xs:attribute name="k" type="xs:string" use="optional"/>
<xs:attribute name="v" type="xs:string" use="optional"/>
<xs:attribute name="cat" type="xs:string" use="optional"/>
<xs:attribute name="closed" default="any" type="tns:closed" use="optional"/>
<xs:attribute name="zoom-min" default="0" type="xs:unsignedByte" use="optional"/>
<xs:attribute name="zoom-max" default="127" type="xs:unsignedByte" use="optional"/>
</xs:complexType>
<xs:complexType name="atlasRect">
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="pos" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="atlas">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="rect" type="tns:atlasRect"/>
</xs:choice>
<xs:attribute name="img" type="xs:string" use="required"/>
</xs:complexType>
<!-- stylemenu element -->
<xs:complexType name="stylemenu">
<xs:sequence maxOccurs="1" minOccurs="0">
<xs:element name="layer" maxOccurs="unbounded" minOccurs="0" type="tns:layer"/>
</xs:sequence>
<xs:attribute name="defaultvalue" type="xs:string" use="required"/>
<xs:attribute name="defaultlang" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<!-- tag-transform element -->
<xs:complexType name="tag-transform">
<xs:attribute name="k" type="xs:string" use="required"/>
<xs:attribute name="v" type="xs:string" use="optional"/>
<xs:attribute name="k-lib" type="xs:string" use="required"/>
<xs:attribute name="v-lib" type="xs:string" use="optional"/>
</xs:complexType>
<!-- rendertheme element -->
<xs:complexType name="rendertheme">
<xs:sequence maxOccurs="1" minOccurs="0">
<xs:element name="stylemenu" maxOccurs="1" minOccurs="0" type="tns:stylemenu"/>
<!-- tag definitions -->
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="tag-transform" type="tns:tag-transform"/>
</xs:choice>
<!-- style definitions -->
<xs:sequence maxOccurs="256" minOccurs="0">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="style-text" type="tns:text"/>
<xs:element name="style-symbol" type="tns:symbol"/>
<xs:element name="style-area" type="tns:area"/>
<xs:element name="style-line" type="tns:line"/>
<!-- <xs:element name="style-outline" type="tns:line" /> -->
</xs:choice>
</xs:sequence>
<xs:choice maxOccurs="1" minOccurs="0">
<xs:element name="atlas" type="tns:atlas"/>
</xs:choice>
<!-- matching rules -->
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="m" type="tns:m"/>
</xs:sequence>
</xs:sequence>
<xs:attribute name="version" type="xs:positiveInteger" use="required"/>
<xs:attribute name="map-background" default="#ffffff" type="tns:color" use="optional"/>
<xs:attribute name="base-stroke-width" default="1" type="tns:nonNegativeFloat"
use="optional"/>
<xs:attribute name="base-text-scale" default="1" type="tns:nonNegativeFloat"
use="optional"/>
</xs:complexType>
<!-- root element -->
<xs:element name="rendertheme" type="tns:rendertheme"/>
</xs:schema>