import './assets/resource/iconfont.css'
import './base/iconfontDef.js'
import SlMap from './map/Map.vue'
import SlView from './map/MapView.vue'
import VectorLayer from './layers/VectorLayer.vue'
import ClusterLayer from './layers/ClusterLayer.vue'
import ClusterUrlLayer from './layers/ClusterUrlLayer.vue'
import HeatLayer from './layers/HeatLayer.vue'
import Draw from './controls/Draw.vue'
import DrawSY from './controls/DrawSY.vue'
import Drawlx from './controls/Draw.vue'
import DrawModify from './controls/DrawModify.vue'
import searchKey from './searchKey/searchKey.vue'
import Overview from './controls/Overview'
import Measure from './controls/Measure.vue'
import InfoWindow from './overlays/InfoWindow.vue'
import Edit from './controls/Edit.vue'
import { createProjection, createLayer, web3857ToWgs84, wgs84Toweb3857, getDeviceByExtent, createPointCluster, clearClusterFeatures, loadClusterFeatures } from './base/factory'
import { addAlarmFlash, removeOverLayeById } from './base/alarmFlash'
import { MapServiceType } from './base/MapServiceType'
import { MapType } from './base/MapType'
import { GeometryType } from './base/GeometryType'
// import 'babel-polyfill'
// 罗旭添加自定义类
import UtilDB from './indexDB/UtilDB'
import constantSpeedObj from './base/constantSpeedObj'
import mapSearch from './searchKey/mapSearch'
// 胡红勋添加-----
import { HistoryTrack } from './base/carTrack'
import ContextMenu from './controls/ContextMenu'
import Loading from './controls/Loading'
import MousePosition from './controls/MousePosition'
import RotateControl from './controls/RotateControl'
import MeasureTool from './interaction/MeasureTool'
import SelectCluster from './interaction/SelectCluster'
import AnimatedCluster from './layers/AnimatedCluster'
import printMap from './tools/printfMap'
//luoxu
//import carTestlx from './base/carTracklx.vue'
import carTestCL from './base/carTracklxCL.vue'
import constantSpeed from './base/constantSpeed.vue'
import constantSpeed2 from './base/constantSpeed2.vue'
import paginationPanel from './base/paginationPanel.vue'
import rightPanel from './base/rightFloatPanel.vue'
import leftPanel from './base/leftFloatPanel.vue'
import MapTransit from './base/MapTransit.vue'
// import righTab from './base/rightFloatPanelTab.vue'//只是测试,后面以子组件的形式引入到floatPanel
import carTestZY from './base/carTracklxZY.vue'
import carTestSS from './base/carTracklxSS.vue'
import carTestZL2 from './base/carTracklxZL2.vue'
import carTestZL3 from './base/carTracklxZL3.vue'
import addClick from './base/addClick.vue'
import carSZ from './base/carTracklx.vue'
import carTestZL from './base/carTracklxZL.vue'
//import { drawCircle, highLight ,createSelectInfoPop} from './base/addClick'
import { addVector, addPoiVectors, clearMap, districtQuery, findByIdToLayer, addPicAndText, addVectorLabelJG, drawBezierLine, add_oval, removeLayersExceptMap, geoQuery, drawGeometry, clearLikeSpatial, visibleLikeSpatial, clearSpatial, flyTo, getTwoPointsLength, bd09togcj02, gcj_encrypt, drawCircleSymbol, drawCircle1000, clearInterModifyAndSelect, arrToRoute, clearOverLay, lineShowDistant, addExtent, findPosByCityName, getSubWayLine, filterKey, radarChart, intersectRoute, flying, addSZPic, deleteIndexDBFolder, findRoadZY } from './base/poiQuery'
import { filterKeySearch, flashingPoints, findFreeHandRoad, saveFreeHandRoad, revAddressSearch, addressSearch, addHugePointsGif, addHugePoints, addMultiHugePoints, queryGeometry } from './base/searchKey'
import { trackBuffer, drawLine, insertfun } from './base/trackAnalysis'
import { flightRending } from './base/flightRendering'
import { moveingLine } from './base/flightAndMoveLine'
export default {
    install(Vue) {
        Vue.component('sl-map', SlMap)
        Vue.component('sl-view', SlView)
        Vue.component('sl-cluster-url-layer', ClusterUrlLayer)
        Vue.component('sl-vector-layer', VectorLayer)
        Vue.component('sl-draw', Draw)
        Vue.component('pagination-Panel', paginationPanel)
        Vue.component('right-Panel', rightPanel)
        Vue.component('left-Panel', leftPanel)
        Vue.component('map-transit', MapTransit)
            // Vue.component('right-Tab', righTab)
        Vue.component('sl-drawlx', Drawlx)
        Vue.component('sl-drawSY', DrawSY)
        Vue.component('sl-drawModify', DrawModify)
        Vue.component('sl-searchKey', searchKey)
        Vue.component('sl-measurelx', Measure)
        Vue.component('sl-infowindow', InfoWindow)
        Vue.component('sl-edit', Edit)
        Vue.component('sl-cluster-layer', ClusterLayer)
        Vue.component('sl-heat-layer', HeatLayer)
        Vue.component('car-TestZY', carTestZY)
        Vue.component('car-TestCL', carTestCL)
        Vue.component('constant-Speed', constantSpeed)
        Vue.component('constant-Speed2', constantSpeed2)
        Vue.component('car-TestSS', carTestSS)
        Vue.component('car-SZ', carSZ)
        Vue.component('car-TestZL', carTestZL)
        Vue.component('car-TestInfo', addClick)
        Vue.component('car-TestZL2', carTestZL2)
        Vue.component('car-TestZL3', carTestZL3)

    }
}
export {
    SlMap,
    SlView,
    createProjection,
    findFreeHandRoad,
    createLayer,
    wgs84Toweb3857,
    web3857ToWgs84,
    MapServiceType,
    MapType,
    addVectorLabelJG,
    addPicAndText,
    GeometryType,
    revAddressSearch,
    getSubWayLine,
    findPosByCityName,
    findRoadZY,
    intersectRoute,
    deleteIndexDBFolder,
    ContextMenu,
    queryGeometry,
    addHugePoints,
    addMultiHugePoints,
    addHugePointsGif,
    addressSearch,
    filterKeySearch,
    flashingPoints,
    saveFreeHandRoad,
    MousePosition,
    RotateControl,
    MeasureTool,
    SelectCluster,
    AnimatedCluster,
    printMap,
    Loading,
    drawBezierLine,
    findByIdToLayer,
    removeLayersExceptMap,
    HistoryTrack,
    UtilDB,
    constantSpeedObj,
    mapSearch,
    getDeviceByExtent,
    createPointCluster,
    clearClusterFeatures,
    addAlarmFlash,
    removeOverLayeById,
    Overview,
    trackBuffer,
    flightRending,
    drawLine,
    drawCircleSymbol,
    getTwoPointsLength,
    insertfun,
    // createSelectInfoPop,
    // addClick,
    addVector,
    addPoiVectors,
    moveingLine,
    flying,
    filterKey,
    radarChart,
    addSZPic,
    gcj_encrypt,
    bd09togcj02,
    clearMap,
    clearSpatial,
    visibleLikeSpatial,
    clearLikeSpatial,
    drawGeometry,
    flyTo,
    drawCircle1000,
    clearInterModifyAndSelect,
    clearOverLay,
    lineShowDistant,
    arrToRoute,
    add_oval,
    districtQuery,
    geoQuery,
    addExtent,
    // highLight,
    loadClusterFeatures
}