You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.1 KiB
152 lines
4.1 KiB
import React, { useEffect, useRef } from 'react' |
|
import ReactDOMServer from 'react-dom/server' |
|
import { createTileLayerComponent, updateGridLayer } from '@react-leaflet/core' |
|
import L, { tileLayer } from 'leaflet' |
|
import isObject from 'lodash/isObject' |
|
import isFunction from 'lodash/isFunction' |
|
import isString from 'lodash/isString' |
|
import isEmpty from 'lodash/isEmpty' |
|
import clone from 'lodash/clone' |
|
import cloneDeep from 'lodash/cloneDeep' |
|
import extend from 'lodash/extend' |
|
import merge from 'lodash/merge' |
|
import has from 'lodash/has' |
|
import find from 'lodash/find' |
|
import 'leaflet.vectorgrid' |
|
import '../generalWms/L.VectorGrid.VectorPoi' |
|
import '../generalWms/L.TileLayer.GeneralWMS' |
|
import '../generalWms/L.TileLayer.MatoaNpwp' |
|
import '../generalWms/L.TileLayer.PoiGoogle' |
|
// import { Popup, useMap } from 'react-leaflet' |
|
// import { Button, Col, Row } from 'reactstrap' |
|
|
|
const style = { |
|
kpdl_npwp_tidak_valid: { |
|
fillColor: '#3388ff', |
|
color: '#f20e93', |
|
fillOpacity: 1, |
|
opacity: 1, |
|
radius: 7, |
|
fill: true, |
|
zIndex: 100, |
|
getFeatureId: function (f) { |
|
return f.properties.UUID |
|
} |
|
}, |
|
kpdl_poi_google: { |
|
fillColor: '#b30e3d', |
|
color: '#da165a', |
|
fillOpacity: 1, |
|
opacity: 1, |
|
radius: 7, |
|
fill: true, |
|
zIndex: 100, |
|
getFeatureId: function (f) { |
|
return f.properties.UUID |
|
} |
|
} |
|
} |
|
|
|
const parameterPeta = (id, layername) => { |
|
return { |
|
id: id, |
|
// url: '/engineN/geoserver/wms', |
|
url: 'https://cendol-djp.intranet.pajak.go.id/geoserver/wms', |
|
wmsParams: { |
|
request: 'GetMap', |
|
service: 'WMS', |
|
crs: 'EPSG:3857', |
|
styles: '', |
|
transparent: 'TRUE', |
|
version: '1.3.0', |
|
format: 'application/vnd.mapbox-vector-tile', |
|
layers: layername, |
|
width: 256, |
|
height: 256, |
|
cql_filter: "'1=1'", |
|
// query_layers: 'matoa:kpdl_npwp_tidak_valid', |
|
tiled: 'FALSE' |
|
}, |
|
interactive: true, |
|
type: 'protobuf', |
|
rendererFactory: L.svg.tile, |
|
vectorTileLayerStyles: style |
|
} |
|
} |
|
|
|
const parameterPetaWms = (id, layername, style, minzoom) => { |
|
return { |
|
id: id, |
|
// url: '/engineN/geoserver/wms', |
|
url: 'https://cendol-djp.intranet.pajak.go.id/geoserver/wms', |
|
wmsParams: { |
|
request: 'GetMap', |
|
service: 'WMS', |
|
styles: style, |
|
transparent: 'TRUE', |
|
version: '1.1.0', |
|
format: 'image/png', |
|
layers: layername, |
|
maxZoom: 23, |
|
minZoom: minzoom ?? 5, |
|
cql_filter: '(1=1)' |
|
} |
|
} |
|
} |
|
|
|
//layer poi google |
|
// const poiGoogleParam = parameterPetaWms(1, 'matoa:kpdl_poi_google', 'poi_google', 10) |
|
// const poiGoogleLayer = L.tileLayer.poiGoogle(poiGoogleParam.url, poiGoogleParam.wmsParams) |
|
|
|
//layer npwp tidak valid |
|
const npwpInvalidParam = parameterPeta(2, 'matoa:kpdl_npwp_tidak_valid', 'poi_matoa_npwp') |
|
const npwpInvalidlayer = L.vectorGrid.vectorpoi(npwpInvalidParam.url, npwpInvalidParam) |
|
|
|
//layer poi Matoa BerNPWP (Hijau) |
|
const poiMatoaNpwpParam = parameterPetaWms(3, 'matoa:kpdl_npwp_valid', 'poi_matoa_npwp', 6) |
|
const poiMatoaNpwpLayer = new L.tileLayer.matoaNpwp(poiMatoaNpwpParam.url, poiMatoaNpwpParam.wmsParams) |
|
|
|
//layer poi Matoa NonNPWP (Orange /Kuning) |
|
const poiMatoaNpwpNullParam = parameterPetaWms(4, 'matoa:kpdl_npwp_null', 'poi_matoa_npwp_null', 4) |
|
const poiMatoaNpwpNullLayer = L.tileLayer.matoaNpwp(poiMatoaNpwpNullParam.url, poiMatoaNpwpNullParam.wmsParams) |
|
|
|
//action |
|
|
|
npwpInvalidlayer.on('click', (e) => { |
|
// console.log(e) |
|
}) |
|
|
|
export const matoaLayers = { |
|
npwpInvalidlayer, |
|
// poiGoogleLayer, |
|
poiMatoaNpwpLayer, |
|
poiMatoaNpwpNullLayer |
|
} |
|
|
|
export const overlaysTree = [ |
|
// { |
|
// label: '<span style="padding-left:20px" class="text-center center text-sm">Poi Google</span>' |
|
// }, |
|
// { |
|
// label: 'Poi Google', |
|
// layer: matoaLayers.poiGoogleLayer |
|
// }, |
|
{ |
|
label: 'POI MATOA', |
|
selectAllCheckbox: true, |
|
children: [ |
|
{ |
|
label: 'berNPWP', |
|
layer: matoaLayers.poiMatoaNpwpLayer |
|
}, |
|
{ |
|
label: 'Non NPWP', |
|
layer: matoaLayers.poiMatoaNpwpNullLayer |
|
} |
|
// { |
|
// label: 'Matoa NPWP invalid', |
|
// layer: matoaLayers.npwpInvalidlayer |
|
// } |
|
] |
|
} |
|
]
|
|
|