Map_wz.vue 3.33 KB
<!--
 * @Author: jiangbotao
 * @Date: 2019-12-10 22:15:53
 * @LastEditors: jiangbotao
 * @LastEditTime: 2019-12-15 20:57:03
 * @FilePath: \supermapvue\src\components\vt\Map_wz.vue
 -->
<template>
    <div >
        <div id="map"></div>
    </div>
</template>

<script>
import mapboxgl from 'mapbox-gl';
import { Logo, FeatureService, QueryService } from '@supermap/iclient-mapboxgl';

export default {
    name: 'MVT',
    data () {
        return {
            map: null
        }
    },
    mounted(){ 
        this.map = new mapboxgl.Map({
            container: 'map', // container id
            style: 
                'http://127.0.0.1:8090/iserver/services/map-mvt-China_Dark/rest/maps/China_Dark/tileFeature/vectorstyles.json?type=MapBox_GL&styleonly=true',
            center: [116.4, 39.9],
            minZoom: 0,
            zoom: 3,
            // pitch: 45,
            // bearing: -10
        });
        this.map.addControl(new mapboxgl.NavigationControl(), 'top-left');
        var __this = this;
        this.map.on('load', function () {
            // console.log(map.getStyle().sources);
            // console.log(map.getStyle().layers);
            __this.map.setPaintProperty('WorldElements_R@China', 'fill-color', '#a1dab4');
            __this.map.setPaintProperty('River_R@China', 'fill-color', '#fcfcfc');

            var dataUrl = 'http://127.0.0.1:8090/iserver/services/data-China/rest/data/';
            var sqlParam = new SuperMap.GetFeaturesBySQLParameters({
                queryParameter: {
                    name: "poi",
                    attributeFilter: "SMID > 0",
                    targetEpsgCode:4326
                },
                datasetNames: ["China:poi"],
                targetEpsgCode:4326,
                maxFeatures: 1500,
                toIndex: -1
            });
            var featureService = new mapboxgl.supermap.FeatureService(dataUrl);
            var features = null;
            
            featureService.getFeaturesBySQL(sqlParam, function (serviceResult) {
                features = serviceResult.result.features;
                console.log(features);
                
                __this.map.addSource("queryDatas", {
                    "type": "geojson",
                    "data": features
                });
                
                __this.map.addLayer({
                    "id": "queryDatasLayer",
                    "type": "circle",
                    "source": "queryDatas",
                    "paint": {
                        'circle-radius': 2,
                        'circle-color': '#6879FB',
                        //     property:'value',
                        //     stops: [
                        //         [min,'#6879FB'],
                        //         [min + 1/3*range,'#68FB75'],
                        //         [min + 2/3*range, '#F94B18'], 
                        //         [max, '#F92918']
                        //     ]
                        // },
                        'circle-opacity': 1.0,
                        "circle-stroke-width": 2,
                        "circle-stroke-color": "#007cbf",
                        "circle-stroke-opacity": 0.7
                    }
                });
            });
        });
    }
}
</script>

<style scoped>
#map {
    position: absolute;
    height: 100%;
    width: 100%;
    background-color: white
}
</style>