Registre el proceso de descarga, conversión y visualización de datos

Tabla de contenido

Fuentes de datos

Un día, un estudiante de último año pidió ayuda para descargar una copia de los datos en línea. Después del análisis, los datos obtenidos se solicitaron a geojson a través del alcance actual de bbox. La dirección es la siguiente:

https://xxxxxxxx/api/layers?layer=fields
south=xxx
north=xxx
east=xxx
west=xxx
zoom=xx
  • Descargar datos

Los datos en el rango de la ventana de descarga generalmente son para reducir la presión de la solicitud de datos y, al mismo tiempo, pueden usarse para extraer datos y simplificar el procesamiento a pequeña escala, a fin de reducir la presión sobre el cliente y el servidor.
Afortunadamente, los datos en esta dirección no simplifican el procesamiento de datos, por lo tanto, use directamente el nivel de zoom máximo en el rango de -180, 180, -90, 90 (esto se puede ver en el sitio web), y puede obtener los datos json solicitando los datos. .

Después de que se obtuvieron los datos, se descubrió que no eran datos de formato geojson estándar y que la cantidad de datos era relativamente grande.
Inserte la descripción de la imagen aquí

  • Corrección de formato
    Por lo tanto, simplemente necesitamos procesar los datos aquí para convertir los datos json obtenidos al formato GeoJSON. Los amigos que no conocen aquí pueden confiar en mí en privado.

  • Convertir a Shapefile

Originalmente quería resolver este problema a través de ArcGIS, lo intenté más tarde, ArcGIS no es muy compatible con el formato GeoJSON, tiene un conjunto de formato EsriJSON. Así que pensé en usar geotools para hacerlo con unas pocas líneas de código, y pensé que la dependencia de maven de geotools es bastante, y la velocidad de descarga es un poco engorrosa por varias razones. Entonces pensé en GDAL, hay versiones compiladas de gdal listas para descargar disponibles en Internet .
Inserte la descripción de la imagen aquí
Después de la descarga es la siguiente: Ejecute SDKShell.bat como administrador y ejecute el siguiente comando para completar la conversión de datos:

ogr2ogr -f "ESRI Shapefile" F:\Data\geojson\abc.shp F:\Data\geojson\data2.json

Pantalla de carga

La carga aquí tiene dos propósitos, uno es cargar los datos GeoJSON descargados actualmente y el otro es superponer una capa wms para verificar la exactitud de los datos GeoJSON.

Aquí simplemente apliqué una plantilla html en el ejemplo de mapbox-gl.

Aquí solo publicaré el código central, que en realidad es para cargar datos de GeoJSON y cargar porciones de WMS.
Cargue el segmento WMS:

map.addLayer({
    
    
            'id': 'wms_layer1',
            'type': 'raster',
            'source': {
    
    
                'type': 'raster',
                'tiles': [
                    '/geoserver/ows/mps?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png8&TRANSPARENT=true&LAYERS=mps_mapping_accumulation&STYLES=&SRS=EPSG:3857&CRS=EPSG:3857&TILED=true&apikey=xxx&BBOX={bbox-epsg-3857}&WIDTH=512&HEIGHT=512',
                ],
                'tileSize': 512
            },
            'paint': {
    
    
                "raster-opacity": 1,
            }
        });

Cargar archivo geojson local

		map.addLayer({
    
    
            'id': 'route',
            'type': 'line',
            'source': {
    
    
                'type': 'geojson',
                'data': "/data-convert.json"
            },
            'layout': {
    
    'line-cap': 'round'},
            'paint': {
    
    
                'line-color': '#00ffff',
                'line-width': 1
            }
        })

En el proceso de intentarlo, descubrí que la porción WMS del servidor remoto tiene un problema de dominio cruzado. Además, hay un problema de dominio cruzado al cargar archivos json locales, por lo que aquí usamos nginx como un proxy inverso simple.

server {
    
    
		listen 8088;
		server_name localhost;
		
		root F:/Data/geojson;  #这里放 html页面和json文件

		location /geoserver/ {
    
     #这里代理远程切片
			root   html;
            index  index.html index.htm;
            proxy_pass https://app.mapstand.com;
		}
	}

Después de la verificación, se descubrió que no había ningún problema con los datos descargados.Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/polixiaohai/article/details/109008129
Recomendado
Clasificación