155 lines
5.1 KiB
HTML
Generated
155 lines
5.1 KiB
HTML
Generated
<!DOCTYPE html>
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<script src="data/map/encode.js"></script>
|
|
<script src="lib/simpleRequire.js"></script>
|
|
<script src="lib/config.js"></script>
|
|
<script src="lib/jquery.min.js"></script>
|
|
<script src="lib/facePrint.js"></script>
|
|
<script src="lib/testHelper.js"></script>
|
|
<!-- <script src="ut/lib/canteen.js"></script> -->
|
|
<link rel="stylesheet" href="lib/reset.css" />
|
|
</head>
|
|
<body>
|
|
<style>
|
|
h1 {
|
|
line-height: 60px;
|
|
height: 60px;
|
|
background: #aaa;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
color: #eee;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.chart {
|
|
width: 260px;
|
|
height: 150px;
|
|
display: inline-block;
|
|
}
|
|
</style>
|
|
|
|
|
|
<h1>Different Geometries</h1>
|
|
<div id="geometries"></div>
|
|
|
|
|
|
|
|
<script>
|
|
function createGeoJSONFromGeo(name, geo) {
|
|
return {
|
|
type: 'FeatureCollection',
|
|
features: [{
|
|
geometry: geo,
|
|
properties: {
|
|
name
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
<script>
|
|
require([
|
|
'echarts',
|
|
], function (echarts) {
|
|
|
|
function cloneJSON(json) {
|
|
return JSON.parse(JSON.stringify(json));
|
|
}
|
|
function prepareAndRegisterMap(name, json) {
|
|
echarts.registerMap(name, createGeoJSONFromGeo(name, cloneJSON(json)));
|
|
echarts.registerMap(name + 'Compressed', encode(createGeoJSONFromGeo(name + 'Compressed', cloneJSON(json))));
|
|
}
|
|
prepareAndRegisterMap('Polygon', {
|
|
"type": "Polygon",
|
|
"coordinates": [
|
|
[[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
|
|
]
|
|
});
|
|
prepareAndRegisterMap('MultiPolygon', {
|
|
"type": "MultiPolygon",
|
|
"coordinates": [
|
|
[
|
|
[[30, 20], [45, 40], [10, 40], [30, 20]]
|
|
],
|
|
[
|
|
[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
|
|
]
|
|
]
|
|
});
|
|
prepareAndRegisterMap('LineString', {
|
|
"type": "LineString",
|
|
"coordinates": [
|
|
[30, 10], [10, 30], [40, 40]
|
|
]
|
|
});
|
|
prepareAndRegisterMap('MultiLineString', {
|
|
"type": "MultiLineString",
|
|
"coordinates": [
|
|
[[10, 10], [20, 20], [10, 40]],
|
|
[[40, 40], [30, 30], [40, 20], [30, 10]]
|
|
]
|
|
});
|
|
prepareAndRegisterMap('HoleyMultiPolygon', {
|
|
"type": "MultiPolygon",
|
|
"coordinates": [
|
|
[
|
|
[[40, 40], [20, 45], [45, 30], [40, 40]]
|
|
],
|
|
[
|
|
[[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]],
|
|
[[30, 20], [20, 15], [20, 25], [30, 20]]
|
|
]
|
|
]
|
|
});
|
|
['Polygon', 'MultiPolygon', 'LineString', 'MultiLineString', 'HoleyMultiPolygon'].forEach(map => {
|
|
['', 'Compressed'].forEach(isCompressed => {
|
|
const dom = document.createElement('div');
|
|
dom.className = 'chart';
|
|
document.querySelector('#geometries').appendChild(dom);
|
|
const chart = echarts.init(dom);
|
|
chart.setOption({
|
|
title: {
|
|
text: map + isCompressed,
|
|
textStyle: {
|
|
fontSize: 14
|
|
}
|
|
},
|
|
series: [{
|
|
type: 'map',
|
|
map: map
|
|
}]
|
|
});
|
|
})
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|