优化显示效果,更新地图显示功能,新增配置项
This commit is contained in:
86
src/render/assets/geojson/geo.js
Normal file
86
src/render/assets/geojson/geo.js
Normal file
@@ -0,0 +1,86 @@
|
||||
// 通过打包配置文件来决定引入那些地图文件
|
||||
|
||||
// 以下文件为包含省内地级市区域内容细节的地图文件
|
||||
import { provice as provice_incity } from "./provice/provice_incity"
|
||||
|
||||
// 以下文件为只包含省级地图轮廓信息的地图文件
|
||||
import { provice as provice_nocity } from "./provice/provice_nocity"
|
||||
|
||||
// 以下_full文件为包含地级市市内区域内容细节的地图文件
|
||||
import { provice as provice_full } from "./provice/provicegeo_full"
|
||||
|
||||
// 以下文件为只包含地级市地图轮廓信息的地图文件
|
||||
import { provice as provice_geo } from "./provice/provicegeo"
|
||||
|
||||
// 以下_full文件为包含直辖市市内区域内容细节的地图文件
|
||||
import { city as city_full } from "./city/citygeo_full"
|
||||
|
||||
// 以下文件为只包含直辖市市级地图轮廓信息的地图文件
|
||||
import { city as city_geo } from "./city/citygeo"
|
||||
|
||||
export function intersect(checkPoint, polygonPoints) {
|
||||
for (let j = 0; j < polygonPoints.features.length; j++) {
|
||||
var counter = 0;
|
||||
var i;
|
||||
var xinters;
|
||||
var p1, p2;
|
||||
var pointCount = polygonPoints.features[j].geometry.coordinates[0][0].length;
|
||||
p1 = polygonPoints.features[j].geometry.coordinates[0][0][0];
|
||||
for (i = 1; i <= pointCount; i++) {
|
||||
p2 = polygonPoints.features[j].geometry.coordinates[0][0][i % pointCount];
|
||||
if (
|
||||
checkPoint[0] > Math.min(p1[0], p2[0]) &&
|
||||
checkPoint[0] <= Math.max(p1[0], p2[0])
|
||||
) {
|
||||
if (checkPoint[1] <= Math.max(p1[1], p2[1])) {
|
||||
if (p1[0] != p2[0]) {
|
||||
xinters =
|
||||
(checkPoint[0] - p1[0]) *
|
||||
(p2[1] - p1[1]) /
|
||||
(p2[0] - p1[0]) +
|
||||
p1[1];
|
||||
if (p1[1] == p2[1] || checkPoint[1] <= xinters) {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
p1 = p2;
|
||||
}
|
||||
if (counter % 2 == 0) {
|
||||
console.log(polygonPoints.features[j].properties.name)
|
||||
} else {
|
||||
return polygonPoints.features[j].properties.name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function findMap(nowPoint, name, deepset) {
|
||||
let provice
|
||||
let city
|
||||
if (deepset[0]) {
|
||||
if(deepset[1]){
|
||||
provice = provice_full
|
||||
city = city_full
|
||||
}else{
|
||||
provice = provice_geo
|
||||
city = city_geo
|
||||
}
|
||||
} else {
|
||||
if(deepset[1]){
|
||||
provice = provice_incity
|
||||
city = city_full
|
||||
}else{
|
||||
provice = provice_nocity
|
||||
city = city_geo
|
||||
}
|
||||
}
|
||||
if (provice[name]) {
|
||||
if (provice[name][name]) {
|
||||
let cityname = intersect(nowPoint, provice[name][name])
|
||||
return provice[name].city[cityname]
|
||||
}
|
||||
return provice[name]
|
||||
}
|
||||
return city[name]
|
||||
}
|
||||
Reference in New Issue
Block a user