"use strict"; var cuizhuyuanPolygons = [[120.38991958, 36.29482584], [120.38965181, 36.29242696], [120.39158754, 36.2924393], [120.39187063, 36.29248247], [120.39252097, 36.29333965], [120.39285763, 36.29353082], [120.39313307, 36.29359866], [120.39314837, 36.29472101], [120.38991958, 36.29482584]]; var zhongchenglu120 = [[120.38813398, 36.29267429], [120.38773983, 36.29117054], [120.38933396, 36.29109289], [120.38943907, 36.29265311], [120.38813398, 36.29267429]]; var furongyuan = [[120.3907624, 36.29902493], [120.39019075, 36.2957125], [120.39029118, 36.2955008], [120.39313413, 36.29532646], [120.39319593, 36.2963725], [120.39226888, 36.29645967], [120.39182081, 36.29678344], [120.39161222, 36.29733137], [120.39196758, 36.29799136], [120.3926088, 36.29815324], [120.39322683, 36.29810966], [120.39324228, 36.29922417], [120.39101734, 36.29924908], [120.3907624, 36.29902493]]; var huachenglu1 = [[120.38679253, 36.29736561], [120.38677627, 36.2968675], [120.38718288, 36.29564844], [120.38969567, 36.29550425], [120.38996402, 36.29575986], [120.39027304, 36.29725419], [120.38679253, 36.29736561]]; var jinrixiaoqu = [[120.38975687, 36.29816328], [120.38968258, 36.29761918], [120.39013157, 36.29759575], [120.39028339, 36.29815807], [120.38975687, 36.29816328]]; var huachenglu2 = [[120.38714981, 36.30193872], [120.38710666, 36.30093002], [120.39055402, 36.30086915], [120.39051626, 36.30235611], [120.38873592, 36.30237351], [120.38873053, 36.30192133], [120.38714981, 36.30193872]]; var meiguiyuan = [[120.390775, 36.3024502], [120.39074464, 36.2994554], [120.39328611, 36.29940644], [120.39334686, 36.30241756], [120.390775, 36.3024502]]; var qingfulou = [[120.38727920717822, 36.300516530135205], [120.38723040717822, 36.29958376013521], [120.38773937717822, 36.299555670135206], [120.38778120717822, 36.300505290135206], [120.38727920717822, 36.300516530135205]]; var pushData = function (polygonsArray) { var arr = []; polygonsArray.forEach(function (item) { var point = { longitude: item[0], latitude: item[1] }; arr.push(point); }); return arr; }; var places = [ { id: 100, name: 'cuizhuyuan', points: pushData(cuizhuyuanPolygons), strokeColor: '#d20202f2', fillColor: '#d202023d', marker: [120.39065242, 36.29369167], label: '翠竹苑', labelFillColor: '#ec4504a8' }, { id: 101, name: 'zhongchenglu120', points: pushData(zhongchenglu120), strokeColor: '#d20202f2', fillColor: '#d202023d', marker: [120.3887047, 36.2919985], label: '中城路120号', labelFillColor: '#ec4504a8' }, { id: 102, name: 'furongyuan', points: pushData(furongyuan), strokeColor: '#2be7fdf2', fillColor: '#2be7fd40', marker: [120.3913773, 36.29654178], label: '芙蓉苑', labelFillColor: '#0092eebf' }, { id: 103, name: 'huachenglu1', points: pushData(huachenglu1), strokeColor: '#2be7fdf2', fillColor: '#2be7fd40', marker: [120.38871706, 36.29666622], label: '华城路1小区', labelFillColor: '#0092eebf' }, { id: 107, name: 'jinrixiaoqu', points: pushData(jinrixiaoqu), strokeColor: '#2be7fdf2', fillColor: '#2be7fd40', marker: [120.38993211, 36.29793679], label: '今日小区', labelFillColor: '#0092eebf' }, { id: 104, name: 'huachenglu2', points: pushData(huachenglu2), strokeColor: '#b7b900f2', fillColor: '#b7b90029', marker: [120.3886075, 36.30210927], label: '华城路2小区', labelFillColor: '#ee9700cc' }, { id: 105, name: 'meiguiyuan', points: pushData(meiguiyuan), strokeColor: '#b7b900f2', fillColor: '#b7b90029', marker: [120.39206791, 36.30168531], label: '玫瑰苑', labelFillColor: '#ee9700cc' }, { id: 106, name: 'qingfulou', points: pushData(qingfulou), strokeColor: '#b7b900f2', fillColor: '#b7b90029', marker: [120.38750634, 36.29999986], label: '青福楼小区', labelFillColor: '#ee9700cc' } ]; function isInPolygon(point, points) { var n = points.length; var nCross = 0; for (var i = 0; i < n; i++) { var p1 = points[i]; var p2 = points[(i + 1) % n]; if (p1.longitude == p2.longitude) continue; if (point.longitude < Math.min(p1.longitude, p2.longitude)) continue; if (point.longitude >= Math.max(p1.longitude, p2.longitude)) continue; var x = (point.longitude - p1.longitude) * (p2.latitude - p1.latitude) / (p2.longitude - p1.longitude) + p1.latitude; if (x > point.latitude) nCross++; } return (nCross % 2 == 1); } var getPolygonsDatas = function () { return places; }; function isSelectPolygon(point) { var selectPolygon = {}; places.forEach(function (item) { if (isInPolygon(point, item.points)) { selectPolygon = item; } }); return selectPolygon; } module.exports = { getPolygonsDatas: getPolygonsDatas, isSelectPolygon: isSelectPolygon };