import React, { useEffect, useState } from 'react'; import { zindexmarker } from '../zindex'; const { css, physics, } = window.popmotionXL; function renderMarker({ rzWarning, rzState, status }, { width }) { if(status===0){ return `
` }else if(status===2){ return `
` }else{ return `
` } } function SYMarker({ data, dispatch, setting, zoom }) { const [ show, setShow ] = useState(true) useEffect(() => { const width = 16; const placeholder = document.getElementById(`marker_shenya_${data.id}`); if (!placeholder) { return; } let svgMarker = '' const hdswDataItem = setting?.filter(o=>o.stcd===data.stcd)//当前Marker对应的data if( Array.isArray(setting) && Array.isArray(hdswDataItem) && hdswDataItem.length === 0){ //不显示 placeholder.innerHTML = ''; setShow(false) return }else{ setShow(true) //显示 if(setting===null){ svgMarker = renderMarker(data, { width: width }); }else{ svgMarker = renderMarker(hdswDataItem[0], { width: width }); } } placeholder.innerHTML = svgMarker; return () => { placeholder.innerHTML = ''; } }, [setting]); const showPop = () => { dispatch.runtime.setFeaturePop({ id: data.id, type: 'shenya', data, lgtd: data.lgtd, lttd: data.lttd, elev: data.elev, }) } return ( <>
{ zoom > 12 && (
{data.stationCode}
) } ) } export default React.memo(SYMarker);