基于SpringBoot和Leaflet的全国省会城市风景区分布分析实践

54 篇文章 18 订阅
#人工智能时代,程序员如何保持核心竞争力?#

目录

前言

一、空间数据表的设计与实现

1、城市信息数据表

 2、风景区信息表设计与实现

3、数据库查询应用 

二、WebGIS程序设计与实现

1、使用@select中转义字符的使用

2、Leaflet空间信息展示

三、省会城市风景区可视化成果展示

1、哈尔滨市风景区分析

 2、南京市风景区分析

3、西安市风景区分析 

4、昆明市风景区分析

四、总结


前言

        2024年暑假过半,相信很多家长都会带小朋友出去看世界。或许此时此刻也有家长带着孩子在路上吧。读万卷书,行万里路,美好的风景等着你去发现,等着你去探索。世界很大,中国也很多。全国34个省会城市,在这34个省会城市中,每个省会城市又有多少美丽的风景等着去发现。今天我们就来看看全国这么多的省会城市中,每个省会城市的风景区分布情况。看看你所在的省有哪些风景区呢?

        本文以全国省会城市风景区分布为例,重点讲解如何在SpringBoot当中,结合Leaflet框架来进行城市风景区分布分析。首先对如何查询全国各省的省会城市进行SQL的查询管理与实践,然后介绍如何在PostGIS空间数据库中进行城市关联分析,其次结合SpringBoot和Leaflet的实例代码来讲解,最后给出不同省会城市的风景区分布成果展示。通过本文,您可以深入掌握如何在SpringBoot中开发WebGIS应用,深入掌握空间分析的方法。

一、空间数据表的设计与实现

        本节将重点讲解在PostGIS数据库中设计空间数据表,为了实现省会城市查询与省会城市和风景区的关联分析,这里需要用到两种表。重点介绍如何查询出省会城市,以及如何根据省会城市查询对应的风景区列表信息等。空间数据表的设计与实现是风景区分布可视化分析的基础。

1、城市信息数据表

        为了照顾没有仔细看过博主之前博文的朋友,这里将博文中涉及的相关表进行简要介绍。城市信息表不仅用来记录省会城市,它是我们的城市运行基础,包括了全国的主要城市信息。它的表结构和数据库表的管理语句如下:

       城市信息表的管理语句如下:

CREATE TABLE "public"."biz_city" (
  "id" int8 NOT NULL,
  "province_code" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
  "province_name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
  "city_code" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
  "city_name" varchar(512) COLLATE "pg_catalog"."default" NOT NULL,
  "type" varchar(32) COLLATE "pg_catalog"."default",
  "geom" "public"."geometry",
  CONSTRAINT "pk_biz_city" PRIMARY KEY ("id")
);

COMMENT ON COLUMN "public"."biz_city"."id" IS '主键ID';
COMMENT ON COLUMN "public"."biz_city"."province_code" IS '省份编码';
COMMENT ON COLUMN "public"."biz_city"."province_name" IS '省份名称';
COMMENT ON COLUMN "public"."biz_city"."city_code" IS '市级编码';
COMMENT ON COLUMN "public"."biz_city"."city_name" IS '实际名称';
COMMENT ON COLUMN "public"."biz_city"."type" IS '类型';
COMMENT ON COLUMN "public"."biz_city"."geom" IS 'geom';

        为了提高按照城市代码和省份代码查询相关数据的性能,我们增加了两个普通索引,创建索引的SQL语句如下:

CREATE INDEX "idx_biz_city_citycode" ON "public"."biz_city" USING btree (
  "city_code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);

CREATE INDEX "idx_biz_city_pcode" ON "public"."biz_city" USING btree (
  "province_code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);

        在数据库中执行查询语句可以看到库中的数据如下:

        以上就是城市信息表的表结构和示例数据。

 2、风景区信息表设计与实现

        同样的,这里也直接提供风景区信息表的字段截图以及物理sql结构。

        风景区信息表的表结构如下:

 

CREATE TABLE "public"."biz_scenic_spot" (
  "id" int8 NOT NULL,
  "name" varchar(255) COLLATE "pg_catalog"."default",
  "level" varchar(4) COLLATE "pg_catalog"."default",
  "province" varchar(255) COLLATE "pg_catalog"."default",
  "city" varchar(255) COLLATE "pg_catalog"."default",
  "area" varchar(255) COLLATE "pg_catalog"."default",
  "address" varchar(255) COLLATE "pg_catalog"."default",
  "evaluation_time" varchar(255) COLLATE "pg_catalog"."default",
  "publish_time" varchar(255) COLLATE "pg_catalog"."default",
  "lng_gcj02" varchar(30) COLLATE "pg_catalog"."default",
  "lat_gcj02" varchar(30) COLLATE "pg_catalog"."default",
  "lng_bd09" varchar(30) COLLATE "pg_catalog"."default",
  "lat_bd09" varchar(30) COLLATE "pg_catalog"."default",
  "lng_wgs84" varchar(30) COLLATE "pg_catalog"."default",
  "lat_wgs84" varchar(30) COLLATE "pg_catalog"."default",
  "geom" "public"."geometry",
  "publish_link" varchar(255) COLLATE "pg_catalog"."default",
  CONSTRAINT "pk_biz_scenic_spot" PRIMARY KEY ("id")
);

CREATE INDEX "idx_biz_scenic_spot_geom" ON "public"."biz_scenic_spot" USING gist (
  "geom" "public"."gist_geometry_ops_2d"
);
COMMENT ON COLUMN "public"."biz_scenic_spot"."id" IS '主键';
COMMENT ON COLUMN "public"."biz_scenic_spot"."name" IS '景区名称';
COMMENT ON COLUMN "public"."biz_scenic_spot"."level" IS '景区级别';
COMMENT ON COLUMN "public"."biz_scenic_spot"."province" IS '所属省份';
COMMENT ON COLUMN "public"."biz_scenic_spot"."city" IS '所属城市';
COMMENT ON COLUMN "public"."biz_scenic_spot"."area" IS '所属区县';
COMMENT ON COLUMN "public"."biz_scenic_spot"."address" IS '地址';
COMMENT ON COLUMN "public"."biz_scenic_spot"."evaluation_time" IS '评定时间';
COMMENT ON COLUMN "public"."biz_scenic_spot"."publish_time" IS '发布时间';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_gcj02" IS 'lng_GCJ02';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_gcj02" IS 'lat_GCJ02';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_bd09" IS 'lng_BD09';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_bd09" IS 'lat_BD09';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_wgs84" IS 'lng_WGS84';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_wgs84" IS 'lat_WGS84';
COMMENT ON COLUMN "public"."biz_scenic_spot"."publish_link" IS '发布链接';
COMMENT ON TABLE "public"."biz_scenic_spot" IS '全国风景区信息表';

3、数据库查询应用 

        要想实现之前提出的省会城市风景区信息列表的可视化,需要分两步来实现。第一步是要查询出省会城市信息列表,第二个是执行空间计算函数,实现指定的城市对应的风景区信息列表查询。本文涉及的省会城市中,我国台湾省暂时不记入统计范围内。在大陆的行政区划管理中,以湖南省为例,湖南省的所有地市的查询语句如下:

select * from biz_city where province_name = '湖南省';

        可以看到,湖南省的省级行政代码是430000,而省会城市是430100。可以看到其它的省会城市也是这个规律。省会城市的city_code是省份province_code的前三位+100。因此我们可以构建出全国的省会城市查询sql:

select ta.id,ta.province_code,ta.province_name,ta.city_name,ta.city_code,ta.type from ( select * from biz_city where province_code = city_code union select * from biz_city where province_code <> city_code and city_code = left(province_code, 3) || '100' ) ta where 1 = 1 and ta.type <> '不统计' order by ta.city_code;

1733479268819783682    110000    北京市    北京市    110000    直辖市
1733479269360848898    120000    天津市    天津市    120000    直辖市
1733479269620895746    130000    河北省    石家庄市    130100    地级市
1733479282942005250    140000    山西省    太原市    140100    地级市
1733479293356462082    150000    内蒙古自治区    呼和浩特市    150100    地级市
1733479322263605250    210000    辽宁省    沈阳市    210100    副省级市
1733479346733174785    220000    吉林省    长春市    220100    副省级市
1733479361249660929    230000    黑龙江省    哈尔滨市    230100    副省级市
1733479389640904705    310000    上海市    上海市    310000    直辖市
1733479391591256066    320000    江苏省    南京市    320100    副省级市
1733479399652708354    330000    浙江省    杭州市    330100    副省级市
1733479410717282306    340000    安徽省    合肥市    340100    地级市
1733479425418317825    350000    福建省    福州市    350100    地级市
1733479435165880321    360000    江西省    南昌市    360100    地级市
1733479444317851650    370000    山东省    济南市    370100    副省级市
1733479458519764993    410000    河南省    郑州市    410100    地级市
1733479479050883073    420000    湖北省    武汉市    420100    副省级市
1733479498793472001    430000    湖南省    长沙市    430100    地级市
1733479520754847746    440000    广东省    广州市    440100    副省级市
1733479543643164674    450000    广西壮族自治区    南宁市    450100    地级市
1733479569366831106    460000    海南省    海口市    460100    地级市
1733479583958814723    500000    重庆市    重庆市    500000    直辖市
1733479588710961154    510000    四川省    成都市    510100    副省级市
1733479617832013825    520000    贵州省    贵阳市    520100    地级市
1733479632080064513    530000    云南省    昆明市    530100    地级市
1733479688380207105    540000    西藏自治区    拉萨市    540100    地级市
1733479818412019713    610000    陕西省    西安市    610100    副省级市
1733479842348912642    620000    甘肃省    兰州市    620100    地级市
1733479867208552450    630000    青海省    西宁市    630100    地级市
1733479898548391937    640000    宁夏回族自治区    银川市    640100    地级市
1733479904697241602    650000    新疆维吾尔自治区    乌鲁木齐市    650100    地级市
1733479937517670402    810000    香港特别行政区    香港特别行政区    810000    特别行政区
1733479938897596417    820000    澳门特别行政区    澳门特别行政区    820000    特别行政区

        根据省会城市所包含的省会城市信息列表sql:

select t.*,st_asgeojson(t.geom) as geomJson from biz_city p,biz_scenic_spot t where p.city_code = '430100' and st_contains(p.geom, t.geom)

        到此我们已经实现了省会城市的查询和对应的风景区列表的查询分析。 

二、WebGIS程序设计与实现

        关于如何在SpringBoot和Leaflet进行WebGIS程序的设计与实现,博主的多篇文章有详细的讲解,这里不再赘述,这里将后台和前端的重点程序逻辑以代码的形式给出,复杂的逻辑将会进行重点介绍。

1、使用@select中转义字符的使用

        在上一节的sql查询中,我们有直接进行sql计算的符号,比如<>,这种符号在@select或者Mybatis的xml解析当中,如果处理不当是非常容易报错的。处理这种符号大体有两种处理方式。第一种是使用<![CDATA[ xxx ]]>进行包装,表示在解析的时候,这个xxx语句将按照原义进行执行。当然你也可以使用&gt;&lt这种转义字符来表示,为了保持sql的可读性。我在这里选用第一种的写法。关键代码如下:

static final String FIND_PROVINCECIAL_CAPITA_SQL = "<script>"
+ " select ta.id,ta.province_code,ta.province_name,ta.city_name,ta.city_code,ta.type from ( "
+ " select * from biz_city where province_code = city_code union "
+ " <![CDATA[ select * from biz_city where province_code <> city_code ]]> "
+ " and city_code = left(province_code, 3) || '100' "
+ " <![CDATA[ ) ta where 1 = 1 and ta.type <> '不统计' ]]> "
+ "<if test='null != cityName'> and ta.city_name like concat('%', #{cityName}, '%') </if>"
+ " order by ta.city_code "
+ "</script>";
/**
* 查询全国省会城市信息列表
* @return
*/
@Select(FIND_PROVINCECIAL_CAPITA_SQL)
List<City> findProvincialCapita(@Param("cityName") String cityName);

2、Leaflet空间信息展示

        在进行WebGIS开发时,我们需要将后台返回的省会城市对应的风景区列表进行展示出来。这里给出关键的展示省会城市的空间范围信息和对应的风景区列表展示核心方法。下面是展示省会城市空间范围的方法,展示信息以geojson的形式返回。

 function showCity(id){
       var myStyle = {color:"red",weight:5,"opacity":1,fillOpacity: 0};
	   $.ajax({  
		      type:"get",  
		      url:prefix + "/geojson/" + id,  
		      data:{},  
		      async: false,
		      dataType:"json",  
		      cache:false,
		      processData:false,
		      success:function(result){
		       	if(undefined != cityAreaLayer ){
		        	cityAreaLayer.removeFrom(mymap);//先移除
		        }
		        if(result.code == web_status.SUCCESS){
		        	var geojson = JSON.parse(result.data);
		        	cityAreaLayer = L.geoJSON(geojson,{style:myStyle}).addTo(mymap);
		        	//同时设置中心位置和级别,9
		        	mymap.setView(cityAreaLayer.getBounds().getCenter(),9);
		        }
		     },
		     error:function(){
		       $.modal.alertWarning("获取空间信息失败");
		     }
		 });
   }

        下面是展示城市对应风景区列表信息方法:

function showScenicSpot(code){
    $.ajax({  
		  type:"get",  
		  url:prefix + "/datalist/" + code,  
		  dataType:"json",  
		  cache:false,
		  processData:false,
		  success:function(result){
		      if(result.code == web_status.SUCCESS){
		        var strokeStyleSet = "#23168d";
		        var lat,lng,cityInfo;
		        for(var i=0;i<result.data.length;i++){
		        	var dataInfo = result.data[i];
		        	var geomObj = JSON.parse(dataInfo.geomJson);
		        	if(i == 0){
		        		lat = geomObj.coordinates[1];
		        		lng = geomObj.coordinates[0];
		        		continue;
		        	}
		        	var radiusSize = 5;
		        	switch(dataInfo.level) {
			        	case '5A':  
			        		strokeStyleSet = "#c50808";
			        		radiusSize += 12;
			        		break;
			        	case '4A':  
			        		strokeStyleSet = "#c37322";
			        		radiusSize += 7;
			        		 break;
			        	case '3A':
			        		strokeStyleSet = "#6f8d16";
			        		radiusSize += 3;
			        		 break;
		        		case '2A':
		        		    strokeStyleSet = "#168d40";
		        		    radiusSize += 1;
			        		break;
			        	default:
			        		strokeStyleSet = "#23168d";
			        	}
		    		var content = "<strong>名称:</strong>"+dataInfo.name + "<br/><strong>级别:</strong>"+ dataInfo.level;
		    		content += "<br/><strong>所属行政区划:</strong>"+ dataInfo.province + "/" + dataInfo.city + "/" + dataInfo.area;
		    		content += "<br/><strong>评定时间:</strong>"+ dataInfo.evaluationTime ;
		    	var latlng = new L.latLng(geomObj.coordinates[1], geomObj.coordinates[0]);
		    		let marker = L.circleMarker(latlng, {
		        		 radius: radiusSize,
		        		 color: strokeStyleSet,//这里设置的是circleMarker的颜色属性
		        		 labelStyle: {
		        		     offsetX: 0, //横坐标偏移(像素)
		        		     offsetY: 30, //纵坐标偏移(像素)
		        		     text: dataInfo.name,
		        		     rotation: 0,
		        		     zIndex: radiusSize,
		        			minZoom : 5,
		        			fillStyle: strokeStyleSet
		        		    }
	        		   }).addTo(showLayerGroup);
		    			marker.bindPopup(content); 
		        	}
		        	mymap.addLayer(showLayerGroup);
		        }
		   },
		   error:function(){
		        $.modal.alertWarning("获取信息失败");
		  }
	});
}

        其它的信息查询的方法比较简单,这里不准备进行详细的讲解,经过上述的步骤就完成了后台的应用程序和前端WebGIS的页面开发。

三、省会城市风景区可视化成果展示

        在经过了城市风景区的空间数据库的设计与实现、前后端的应用程序的设计与实现之后。是我们交作业的时候了,全国33个省会城市(包括香港特别行政区和澳门特别行政区)的风景区可视化作业。博文篇幅有限,这里将重点展示几个代表省会城市的信息。如果哪个小伙伴想了解自己所属省会城市的风景区列表的,可以在评论区留下城市信息哦。

1、哈尔滨市风景区分析

        首先来看一下黑龙江省省会哈尔滨市的城市风景区列表,在2024年春节的时候,哈尔滨的旅游很火,很多南方的小土豆都去感受了东北的气息。上图就是哈尔滨市的城市风景区分布。可以看到在市中心也有非常多的景点。

        下面通过一个表格来看下哈尔滨市的5A和4A风景区列表如下,一共有34家,其中5A级有一家,33家4A级风景区:

太阳岛风景区    5A    黑龙江    哈尔滨市    松北区
亚布力滑雪旅游度假区    4A    黑龙江    哈尔滨市    尚志市
二龙山风景区    4A    黑龙江    哈尔滨市    宾县
英杰风景区    4A    黑龙江    哈尔滨市    宾县
森工平山旅游区    4A    黑龙江    哈尔滨市    阿城区
哈尔滨北方森林动物园    4A    黑龙江    哈尔滨市    阿城区
金龙山国际旅游度假区    4A    黑龙江    哈尔滨市    阿城区
美丽岛温泉水乐园    4A    黑龙江    哈尔滨市    阿城区
方正高楞林场罗勒密山景区    4A    黑龙江    哈尔滨市    方正县
百年哈啤文化旅游区    4A    黑龙江    哈尔滨市    平房区
侵华日军第七三一部队罪证陈列馆    4A    黑龙江    哈尔滨市    平房区
铮子山地质森林公园管理处    4A    黑龙江    哈尔滨市    通河县
永泰世界主题乐园    4A    黑龙江    哈尔滨市    香坊区
普罗旺斯蒸衣草庄园    4A    黑龙江    哈尔滨市    香坊区
松松小镇    4A    黑龙江    哈尔滨市    香坊区
波塞冬旅游度假区    4A    黑龙江    哈尔滨市    松北区
黑龙江省科技馆    4A    黑龙江    哈尔滨市    松北区
哈尔滨极地馆    4A    黑龙江    哈尔滨市    松北区
东北虎林园    4A    黑龙江    哈尔滨市    松北区
融创乐园    4A    黑龙江    哈尔滨市    松北区
哈尔滨建筑艺术馆    4A    黑龙江    哈尔滨市    道里区
红豆杉景区    4A    黑龙江    哈尔滨市    尚志市
龙塔    4A    黑龙江    哈尔滨市    南岗区
哈尔滨市凤凰山森林旅游区    4A    黑龙江    哈尔滨市    五常市
呼兰河口湿地    4A    黑龙江    哈尔滨市    松北区
大顶上温泉度假村    4A    黑龙江    哈尔滨市    呼兰区
伏尔加庄园    4A    黑龙江    哈尔滨市    香坊区
文化公园    4A    黑龙江    哈尔滨市    南岗区
中央欧陆风情旅游区    4A    黑龙江    哈尔滨市    道里区
森工清河林区旅游景区    4A    黑龙江    哈尔滨市    通河县
白渔泡湿地公园    4A    黑龙江    哈尔滨市    道外区
东方红湿地旅游景区    4A    黑龙江    哈尔滨市    方正县
大沾河国家森林公园景区    4A    黑龙江    哈尔滨市    道里区
笨东市伊利乳业工业旅游景区    4A    黑龙江    哈尔滨市    呼兰区

 2、南京市风景区分析

        上游天堂,下游苏杭,上图是江苏省南京市的风景区列表。从图中可以看到,江苏的不仅经济很好,风景旅游去也是非常多的。宜商宜居。 来看下南京市区的旅游景点分布。

         在繁华的金陵城,同样有很多值得游览的风景区。曾经在南京工作过几年,非常喜欢南京这个城市,春天和秋天特别适合游览,风景非常好。

        南京市的5A和4A风景区一共有27家,其中5A级有两家,25家4A级风景区。

南京夫子庙秦淮风光带    5A    江苏    南京市    秦淮区
南京钟山风景名胜区—中山陵园风景区    5A    江苏    南京市    玄武区
南京市大报恩寺遗址公园景区    4A    江苏    南京市    秦淮区
南京市牛首山文化旅游区    4A    江苏    南京市    江宁区
南京市汤山紫清湖旅游区    4A    江苏    南京市    江宁区
南京市金牛湖景区    4A    江苏    南京市    六合区
南京市游子山休闲旅游区    4A    江苏    南京市    高淳区
南京市高淳国际慢城    4A    江苏    南京市    高淳区
南京博物院    4A    江苏    南京市    玄武区
南京市溧水白马如意文化艺术中心(周园)    4A    江苏    南京市    溧水区
南京市珍珠泉风景区    4A    江苏    南京市    浦口区
南京市高淳老街历史文化景区    4A    江苏    南京市    鼓楼区
南京市红山森林动物园    4A    江苏    南京市    玄武区
南京市科技馆    4A    江苏    南京市    雨花台区
侵华日军南京大屠杀遇难同胞纪念馆    4A    江苏    南京市    建邺区
南京市栖霞山风景区    4A    江苏    南京市    栖霞区
南京市梅园新村纪念馆    4A    江苏    南京市    玄武区
南京市明文化村(阳山碑材)景区    4A    江苏    南京市    江宁区
南京市朝天宫景区    4A    江苏    南京市    秦淮区
南京市玄武湖景区    4A    江苏    南京市    玄武区
南京市阅江楼景区    4A    江苏    南京市    鼓楼区
南京中国近代史遗址博物馆(总统府景区)    4A    江苏    南京市    玄武区
南京市雨花台风景区    4A    江苏    南京市    雨花台区
南京市溧水天生桥景区    4A    江苏    南京市    溧水区
南京市平山森林公园    4A    江苏    南京市    六合区
南京市莫愁湖景区    4A    江苏    南京市    秦淮区
南京市雨发生态旅游区    4A    江苏    南京市    浦口区

3、西安市风景区分析 

        西安市是陕西省的省会,是西北的代表性城市,也是一个非常具有文化魅力的城市,在很多的朝代中,都扮演了首都的角色,曾经也是风华绝代。从上图中可以看到,古都西安的旅游资源也是非常丰富的,文化底蕴雄厚。

        同样,在西安市的市区就分布了很多的5A和4A级的风景区,到了西安,就在市区就可以探访这些景点。 西安市的5A和4A风景区一共有34家,其中5A级有5家,29家4A级风景区。不得不说,西安的5A级景点还是比较丰富的。

秦始皇帝陵博物院    5A    陕西    西安市    临潼区
陕西华清宫文化旅游景区    5A    陕西    西安市    临潼区
西安曲江大雁塔·大唐芙蓉园景区    5A    陕西    西安市    雁塔区
西安城墙·碑林历史文化景区    5A    陕西    西安市    碑林区
大明宫国家遗址公园    5A    陕西    西安市    新城区
陕西翠华山国家地质公园    4A    陕西    西安市    长安区
曲江海洋极地公园    4A    陕西    西安市    雁塔区
陕西太平国家森林公园    4A    陕西    西安市    鄠邑区
西安秦岭野生动物园    4A    陕西    西安市    长安区
西安曲江楼观道文化展示区    4A    陕西    西安市    周至县
朱雀国家森林公园    4A    陕西    西安市    鄠邑区
西安世博园    4A    陕西    西安市    灞桥区
西安浐灞国家湿地公园    4A    陕西    西安市    未央区
西安博物院    4A    陕西    西安市    碑林区
西安汉城湖景区    4A    陕西    西安市    未央区
大唐西市文化景区    4A    陕西    西安市    莲湖区
广仁寺    4A    陕西    西安市    莲湖区
昆明池·七夕公园    4A    陕西    西安市    未央区
汉景帝阳陵博物院    4A    陕西    西安市    莲湖区
陕西张裕瑞那城堡酒庄    4A    陕西    西安市    雁塔区
乐华城乐华恒业欢乐世界景区    4A    陕西    西安市    雁塔区
泾河新城茯茶镇景区    4A    陕西    西安市    雁塔区
西安关中民俗艺术博物院    4A    陕西    西安市    长安区
金龙峡风景区    4A    陕西    西安市    鄠邑区
白鹿原影视城    4A    陕西    西安市    蓝田县
王顺山国家森林公园    4A    陕西    西安市    蓝田县
西安市黑河景区    4A    陕西    西安市    周至县
周至水街沙沙河    4A    陕西    西安市    周至县
西安半坡博物馆    4A    陕西    西安市    灞桥区
白鹿原白鹿仓    4A    陕西    西安市    灞桥区
陕西自然博物馆    4A    陕西    西安市    雁塔区
陕西历史博物馆    4A    陕西    西安市    雁塔区
西北农林科技大学博览园    4A    陕西    西安市    长安区
杨凌现代农业创新园    4A    陕西    西安市    长安区

4、昆明市风景区分析

        昆明市是云南省的省会城市,彩云之南这首歌脍炙人口,人人都可以哼上以下。彩云之南,确实风景怡人,云贵高原多奇景。不过从昆明市的城市风景区分布来看,整个昆明市的旅游分布比较靠南边,北边的风景区较少。 多集中在昆明市区内,

        相对来说,昆明市的旅游资源略少一丢丢, 西安市的5A和4A风景区一共有16家,其中5A级有2家,14家4A级风景区。但是昆明的气候真的非常好,同时云南的葫芦丝是真好听,傣族舞是真的好看。

 昆明市石林风景名胜区    5A    云南    昆明市    石林彝族自治县
昆明世博园旅游区    5A    云南    昆明市    盘龙区
九乡风景名胜区    4A    云南    昆明市    宜良县
云南民族村景区    4A    云南    昆明市    西山区
昆明滇池国家级风景名胜区西山景区    4A    云南    昆明市    西山区
昆明市大观公园景区    4A    云南    昆明市    西山区
昆明市金殿名胜区    4A    云南    昆明市    盘龙区
昆明官渡古镇景区    4A    云南    昆明市    官渡区
云南野生动物园景区    4A    云南    昆明市    盘龙区
石林杏林大观园景区    4A    云南    昆明市    石林彝族自治县
昆明市翠湖·讲武堂景区    4A    云南    昆明市    五华区
昆明轿子山景区    4A    云南    昆明市    禄劝彝族苗族自治县
昆明市石林县乃古石林景区    4A    云南    昆明市    石林彝族自治县
昆明青龙峡景区    4A    云南    昆明市    安宁市
昆明凤龙湾旅游景区    4A    云南    昆明市    寻甸回族彝族自治县
昆明玉龙湾景区    4A    云南    昆明市    安宁市

四、总结

         以上就是本文的主要内容,本文以全国省会城市风景区分布为例,重点讲解在SpringBoot当中,结合Leaflet框架来进行城市风景区分布分析。首先对如何查询全国各省的省会城市进行SQL的查询管理与实践,然后介绍如何在PostGIS空间数据库中进行城市关联分析,其次结合SpringBoot和Leaflet的实例代码来讲解,最后给出不同省会城市的风景区分布成果展示。通过本文,您可以深入掌握如何在SpringBoot中开发WebGIS应用,深入掌握空间分析的方法。行文仓促,难免有不足之处,如有不足,欢迎各位专家朋友在评论区批评指正,不胜感激。

  • 41
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论
在 Vue 3 中使用 Leaflet 库进行 ArcGIS 地图服务的缓冲分析可以按照以下步骤进行操作: 1. 首先,确保你已经安装并引入了 Vue 3 和 Leaflet 库。你可以使用 npm 或 yarn 安装这些库。 2. 在 Vue 组件中,使用 `L.esri.query` 方法创建一个 ArcGIS 查询对象。例如: ```javascript import { ref } from 'vue'; import L from 'leaflet'; import 'leaflet/dist/leaflet.css'; import 'esri-leaflet/dist/esri-leaflet.js'; import 'esri-leaflet-geocoder/dist/esri-leaflet-geocoder.css'; import 'esri-leaflet-geocoder/dist/esri-leaflet-geocoder.js'; export default { name: 'MapComponent', setup() { const mapRef = ref(null); const initializeMap = async () => { const map = L.map(mapRef.value).setView([51.505, -0.09], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); const query = L.esri.query({ url: 'https://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/buffer' }); // 执行缓冲分析 const results = await query.buffer().run(); // 处理分析结果 if (results.length > 0) { // 进行相关操作 } }; return { mapRef, initializeMap }; } }; ``` 在上述代码中,我们创建了一个地图并将其添加到 Vue 组件中。然后,使用 `L.esri.query` 方法创建了一个 ArcGIS 查询对象,并指定了缓冲分析的服务 URL。接下来,使用 `buffer` 方法执行缓冲分析,并使用 `run` 方法获取分析结果。你可以在 `results` 中获取到缓冲分析的结果,并对其进行进一步处理。 这只是一个简单的示例,具体的操作可能会因你的需求而有所不同。你可以根据 Leaflet 和 ArcGIS API 的文档进一步了解并使用更多的功能和选项来进行缓冲分析
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜郎king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值