uniapp H5使用高德地图实现点聚合、行政区域高亮(通俗易懂)

本文详细介绍了如何在uniapp中使用高德地图替代默认的map组件,包括申请key和安全秘钥、引入npm包、创建地图、点聚合、行政区域高亮等功能的实现步骤和代码示例。
摘要由CSDN通过智能技术生成

uniapp自带的map地图组件功能有限,并且适配性实在让人苦恼,高德地图想对成熟稳定且功能比自带map组件完善很多,但是使用较为麻烦,以下是我在uniapp使用高德地图的一些见解和技巧。

可以直接看最后的全部代码,复制粘贴到HBuilder里面,修改key和秘钥即可使用。

页面效果

1.到高德开发平台申请key和安全秘钥

高德开发平台地址 : 我的应用 | 高德控制台 (amap.com)

先创建新应用,应用名称和应用类型根据自己情况来即可

添加新的key应用,这里的需要填写key名称以及选择服务平台,名称自己填即可,服务平台选择web端(js API),点击提交按钮后再列表中可以看到刚刚创建的key。

2.引入npm包

高德使用说明官网:  JS API 结合 Vue 使用-基础-进阶教程-地图 JS API 2.0|高德地图API (amap.com)

在项目目录下执行NPM命令,安装Loader

npm i @amap/amap-jsapi-loader --save

3.页面引入高德地图包

安装完成之后在页面引入JS API loader

import AMapLoader from '@amap/amap-jsapi-loader';

4.绑定key值,创建地图

到这里其实就已经能看到地图了

<template>
	<view id="container" class=""></view>
</template>
<script>
	import AMapLoader from "@amap/amap-jsapi-loader";

	export default {
		name: "map-view",
		mounted() {
			this.initAMap();
		},
		unmounted() {
			this.map?.destroy();
		},
		methods: {
			initAMap() {
				AMapLoader.load({
						key: "你的key", // 申请好的Web端开发者Key,首次调用 load 时必填
						version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
						plugins: ["AMap.Scale"], //需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...']
					})
					.then((AMap) => {
						this.map = new AMap.Map("container", {
							// 设置地图容器id
							viewMode: "3D", // 是否为3D地图模式
							zoom: 11, // 初始化地图级别
							center: [116.397428, 39.90923], // 初始化地图中心点位置
						});
					})
					.catch((e) => {
						console.log(e);
					});
			},
		},
		data() {
			return {
				map: undefined
			}
		}
	};
</script>
<style scoped>
	#container {
		width: 100%;
		height: 100vh;
	}
</style>

5.准备点聚合数据

lnglat为经纬度信息字段。

weight字段为可选参数,表示权重值,以权重高的点为中心进行聚合。

id是留给我们自己用的,在点击时好区分点的是哪一个标记。

 [
  {id:1, weight: 8, lnglat: ["116.506647", "39.795337"] },
  {id:2, weight: 8, lnglat: ["116.843352", "40.377362"] },
  {id:3, weight: 1, lnglat: ["116.637122", "40.324272"] },
  {id:4, weight: 1, lnglat: ["116.105381", "39.937183"] },
  {id:5, weight: 1, lnglat: ["116.653525", "40.128936"] }
]

6.准备点聚合样式

数组元素分别对应聚合量在1-10,11-100,101-1000…的聚合点的样式,当开发者设置聚合样式少于实际叠加的点数,未设置部分按照系统默认样式显示。

[
  {
    //聚合量在1-10时,聚合点的样式
    url: "//a.amap.com/jsapi_demos/static/images/blue.png", //图标显示图片的地址
    size: new AMap.Size(32, 32), //图标显示图片的大小
    offset: new AMap.Pixel(-16, -16), //图标定位在地图上的位置相对于图标左上角的偏移值
    textColor: "#fff", //文字的颜色
  },
  {
    //聚合量在11-100时,聚合点的样式
    url: "//a.amap.com/jsapi_demos/static/images/green.png",
    size: new AMap.Size(32, 32),
    offset: new AMap.Pixel(-16, -16),
    textColor: "#fff",
  },
  {
    //聚合量在101-1000时,聚合点的样式
    url: "//a.amap.com/jsapi_demos/static/images/orange.png",
    size: new AMap.Size(36, 36),
    offset: new AMap.Pixel(-18, -18),
  },
]

7.添加点聚合方法

mapObj地图对象

points为点聚合数据

style为点聚合样式

	mapObj.plugin(["AMap.MarkerCluster"], () => {
					cluster = new AMap.MarkerCluster(mapObj, this.points, {
						styles: styles,
					});
					cluster.on("click", (e) => { //给每一个点位增加点击事件
						this.ClockMarker(e)
					});
				})

全部代码

8.添加行政区域高亮

获取行政区域数据要配置秘钥,直接通过放到window里面

	window._AMapSecurityConfig = {
		securityJsCode: "你的安全秘钥",
	};

这里是获取行政区域数据和渲染的地方 

drawBounds() {
				var that = this
				//加载行政区划插件
				if (!this.district) {
					//实例化DistrictSearch
					var opts = {
						subdistrict: 0, //获取边界不需要返回下级行政区
						extensions: 'all', //返回行政区边界坐标组等具体信息
						level: 'district' //查询行政级别为 市
					};
					this.district = new AMap.DistrictSearch(opts);
				}
				// 获这里写你要获取的城市名称
				let keywords = '北京市'
				this.district.search(keywords, (status, result) => {
					if (!result || !result.districtList || !result.districtList[0]) {
						log.warn('请正确填写名称或更新其他名称');
						return
					}
					var bounds = result.districtList[0].boundaries;
					if (bounds) {
						//生成行政区划polygon
						for (var i = 0; i < bounds.length; i += 1) { //构造MultiPolygon的path
							bounds[i] = [bounds[i]]
						}
						let polygon = new AMap.Polygon({
							strokeWeight: 1,
							path: bounds,
							fillOpacity: 0.4,
							fillColor: '#80d8ff',
							strokeColor: '#0091ea'
						});
						that.map.add(polygon)
						that.map.setFitView(polygon); //视口自适应
					}
				});
			}

全部代码 

<template>
	<view id="container" class=""></view>
</template>
<script>
	import AMapLoader from "@amap/amap-jsapi-loader";
	window._AMapSecurityConfig = {
		securityJsCode: "你的安全秘钥",
	};
	export default {
		name: "map-view",
		mounted() {
			this.initAMap();
		},
		unmounted() {
			this.map?.destroy();
		},
		methods: {
			initAMap() {
				let that = this
				AMapLoader.load({
						key: "你的key", // 申请好的Web端开发者Key,首次调用 load 时必填
						version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
						plugins: ["AMap.DistrictSearch"], //需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...']
					})
					.then((AMap) => {
						that.map = new AMap.Map("container", {
							// 设置地图容器id
							viewMode: "3D", // 是否为3D地图模式
							zoom: 11, // 初始化地图级别
							center: [116.397428, 39.90923], // 初始化地图中心点位置
						});
						// 地图加载完成调用
						that.map.on('complete', () => {
							console.log('地图加载完成');
							that.styles = [{
									//聚合量在1-10时,聚合点的样式
									url: "//a.amap.com/jsapi_demos/static/images/blue.png", //图标显示图片的地址
									size: new AMap.Size(32, 32), //图标显示图片的大小
									offset: new AMap.Pixel(-16, -16), //图标定位在地图上的位置相对于图标左上角的偏移值
									textColor: "#fff", //文字的颜色
								},
								{
									//聚合量在11-100时,聚合点的样式
									url: "//a.amap.com/jsapi_demos/static/images/green.png",
									size: new AMap.Size(32, 32),
									offset: new AMap.Pixel(-16, -16),
									textColor: "#fff",
								},
								{
									//聚合量在101-1000时,聚合点的样式
									url: "//a.amap.com/jsapi_demos/static/images/orange.png",
									size: new AMap.Size(36, 36),
									offset: new AMap.Pixel(-18, -18),
								},
							]
							that.SetMarkerCluster()
							that.drawBounds()
						});
					})
					.catch((e) => {
						console.log(e);
					});
			},
			ClockMarker(e) {
				// cluster:点击的聚合点对象
				// lnglat:点击的位置点坐标
				// target:点聚合插件对象
				// marker:点击的聚合点所包含的点对象

				// 获取当前点击对象里面的标记
				let clusterData = e.clusterData
				// 获取当前点击的标记,这个地方一直都会有一个,根据points数组里面的weight权限值
				let data = e.cluster.p
				// 如果只有一个了就说明已经点击到标签
				if (clusterData.length <= 1) {
					console.log(data.id);
				} else {
					// 证明还是聚合状态,通过方法放大视图
					let zoom = this.map.getZoom()
					zoom += 2
					this.map.setZoomAndCenter(zoom, [data.lnglat.lng, data.lnglat.lat], true, 300000)
				}
			},
			SetMarkerCluster() {
				this.map.plugin(["AMap.MarkerCluster"], () => {
					console.log(this.points);
					console.log(this.styles);
					let cluster = new AMap.MarkerCluster(this.map, this.points, {
						styles: this.styles,
					});
					cluster.on("click", (e) => { //给每一个点位增加点击事件
						this.ClockMarker(e)
					});
				})
			},
			drawBounds() {
				var that = this
				//加载行政区划插件
				if (!this.district) {
					//实例化DistrictSearch
					var opts = {
						subdistrict: 0, //获取边界不需要返回下级行政区
						extensions: 'all', //返回行政区边界坐标组等具体信息
						level: 'district' //查询行政级别为 市
					};
					this.district = new AMap.DistrictSearch(opts);
				}
				// 获这里写你要获取的城市名称
				let keywords = '北京市'
				this.district.search(keywords, (status, result) => {
					if (!result || !result.districtList || !result.districtList[0]) {
						log.warn('请正确填写名称或更新其他名称');
						return
					}
					var bounds = result.districtList[0].boundaries;
					if (bounds) {
						//生成行政区划polygon
						for (var i = 0; i < bounds.length; i += 1) { //构造MultiPolygon的path
							bounds[i] = [bounds[i]]
						}
						let polygon = new AMap.Polygon({
							strokeWeight: 1,
							path: bounds,
							fillOpacity: 0.4,
							fillColor: '#80d8ff',
							strokeColor: '#0091ea'
						});
						that.map.add(polygon)
						that.map.setFitView(polygon); //视口自适应
					}
				});
			}
		},
		data() {
			return {
				district: undefined,
				map: undefined,
				points: [{
						id: 1,
						weight: 8,
						lnglat: [116.397428, 39.90923]
					},
					{
						id: 2,
						weight: 8,
						lnglat: [116.317428, 39.90523]
					},
					{
						id: 3,
						weight: 1,
						lnglat: [116.327428, 39.81523]
					},
				],
				styles: []
			}
		}
	};
</script>
<style scoped>
	#container {
		width: 100%;
		height: 100vh;
	}
</style>

蜻蜓队长2001
关注 关注
  • 13
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
uniappH5高德地图定位、周边、路线规划、多绘制、位置击监听
AIGC大前端小王子
06-22 2738
>本文主要实现uniapp H5高德地图定位、周边、路线规划、多绘制。解决新版本高德地图WEB端(JSAPI)`INVALID_USER_SCODE`平台报错问题及自自定义图标大小调整。
uniapp 高德地图 JS API 聚合
weixin_43962877的博客
07-13 372
【代码】uniapp 高德地图 JS API 聚合
uniapp h5 高德地图基本的使用(给标记绑定事件,信息窗体的使用
F_Glittering的博客
03-03 2204
uniapp h5 高德地图基本的使用(给标记绑定事件,信息窗体的使用
uniapp / H5 jssdk 高德地图获取城市信息
feiyu的博客
02-02 861
uniapp开发微信小程序开发,高德地图获取位置信息,以及经纬度源代码
UNIAPP高德地图获取当前所在位置省份、城市、区、详细地址。以及uniapp安卓打包时高德地图应用的详细配置过程,百度地图。
qq_14852047的博客
09-14 1262
UNIAPP高德地图获取当前所在位置省份、城市、区、详细地址。以及uniapp安卓打包时高德地图应用的详细配置过程,百度地图。
uniapp高德地图,发布为h5网页
11-14
uniapp高德地图,发布为h5网页,内嵌入安卓app中,代码摘要,不含敏感信息在uniapp高德地图,发布为h5网页,内嵌入安卓app中,代码摘要,不含敏感信息
uniapp使用H5高德地图
哆来A梦没有口袋的博客
02-15 7099
uniapp有自带的map组件 map- uni-app官网 map组件兼容了大多数的凭条,但是注意 - map只是展示与定位不一样,定位uniapp有自己的api 在注意事项中,uniapp官网提到了 <map>组件在不同平台的底层引擎是不同的:微信小程序为腾讯地图;H5为腾讯地图或谷歌地图;App、支付宝小程序为高德地图;百度小程序、快应用为百度地图。app-vue也可以使用百度地图,在manifest中配置,打包后生效,但app-nvue只支持高德地图。另外选择地图、查看..
uniapp H5使用高德地图完成路线规划
热门推荐
sunluyi的博客
09-01 1万+
首先到高德地图API,申请web端key 参考高德H5端教程开始写代码高德地图JS API 1、准备工作,会提示你先引入下边这块代码 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script> 我的项目是uniapp项目,在自定义的html引入会报错,个人感觉可能是加载顺序的问题,最后修改成 import maps from '.
uniapp使用高德地图(公众号+h5
一个努力不被优化的程序员
07-09 1004
uni-app,uniCloud,serverless,高德地图,申请高德地图Key,配置使用高德地图,参数说明,高德开放平台用户名,百度地图,申请百度地图Key,配置使用百度地图,参数说明,Google地图(谷歌地图/google map),申请Google地图Key,配置使用Google地图,参。选择微信小程序的话后果就是你的地图出不来,出来了就报key异常。
uni-App APP端及H5使用高德地图 实现创建地图 路线规划 添加定
最新发布
weixin_51951576的博客
10-12 355
注意此处的maker和标都是用的我本地项目下static的静态图片,你们要在地图html文件对应进行更改,最好使用绝对路径,不要使用相对路径,否则打包到真机会显示不出图片。前言:最近公司开发需要用到uni-app搭配高德地图,在踩坑后实现了基本的要求,过程之曲折就不说了,特地开贴记录下。2.在根目录创建static文件夹,在static文件夹下创建html文件夹,在html文件夹创建地图html文件。4.创建好地图html文件后,到根目录page文件夹创建承载html文件的index.vue文件。
uniapp地图选定位h5
qq_43122566的博客
03-20 1179
uniapp中简单使用地图的方法
高德地图api离线化,支持uniapp,web,触屏操作
04-25
离线化高德地图API主要涉及以下几个核心知识: 1. **源码分析与修改**:首先,需要对高德地图API的JS文件进行深入研究,理解其工作原理和调用机制。然后,将其中的网络请求部分替换为本地资源访问,这通常涉及到...
uniapp使用高德地图实现选择地址 h5版本
m0_51123598的博客
09-29 457
此时是没有返回省市区的 只是返回了地图上主内容和副内容以及经纬度,由于我是做收货地址 需要给后端更多的字段,所以我是需要反查的,看代码,在原有的基础上加一个function,用于反查。【web服务】则是用来反查用户选择的定位信息(比uni.chooseLocation更详细一些,如果觉得uni.chooseLocation够用那就不需要做这一步,可以直接跳过)做的时候很想掀桌子,但是忍住了,只能怪自己技术不到位,因为这个东西我搞了两天,是的,就只是选择地址而已,我做了两天......下辈子不要做前端了。
uniapp H5打开地图
weixin_45811884的博客
06-24 529
【代码】uniapp H5打开地图。
【实战教程】Uni-App开发:轻松集成高德地图实现精准位置选功能
luhanglh的博客
07-15 5375
【实战教程】Uni-App开发:轻松集成高德地图实现精准位置选功能。 uni-app实现高德地图功能
uni-app h5应用中使用高德地图
leixiang126的博客
09-10 1万+
uni-app作为一个新型跨多个平台的框架,由于目前还在不断完善过程中,目前还是存在好多坑需要去填,前段时间遇到项目中由于项目只能使用高德地图,而uni-app默认h5小程序是腾讯地图,所以想到用内嵌html页面的方式来实现。需要用uni-app的web-view来做中间件,这个组建web-view里面有详细的介绍,我这边就不做过多的解释了,然后就是在从uni-app的页面跳转html的过程需要注...
uniapp H5/APP端获取用户的地理位置(高德地图
m0_48985355的博客
01-16 6105
2、在H5使用地图和定位相关,需要在 manifest.json 内web配置腾讯或谷歌等三方地图服务商申请的秘钥(key),高德地图(web端key)需要额外配置 securityJsCode 或 serviceHost。(2)【web服务】主要是uniapp H5端不能直接获取 地址信息(仅APP端支持),须先通过uni.getLocation获取经纬度,再通过第三方(高德)逆地理编码(高德逆地理编码)解析出地址信息。2、用浏览器测试,需要打开浏览器的定位服务(本人用的是火狐);
uniapp使用高德地图
lllcuigu的博客
10-11 1010
要在高德地图申请key。
uniapp通过renderjs实现高德地图聚合
weixin_62186125的博客
01-15 654
uniapp通过renderjs实现高德地图聚合
uniapp使用高德地图教程
10-27
根据提供的引用内容,可以得知在uniapp使用高德地图需要进行以下准备工作: 1. 参考相关博客和官方文档,了解使用高德地图的基本知识。 2. 初始化地图,可以参考高德地图官方文档中的入门教程。 3. 导入高德地图,可以使用提供的方法定义一个全局的地图实例供调用高德API。 除此之外,还需要注意以下几: 1. 在使用高德地图API时,需要在高德地图开放平台上注册并获取相应的key。 2. 在使用uniapp框架时,需要使用uni-app插件市场中提供的uni-amap组件库来实现高德地图的功能。
写文章

热门文章

  • 企业微信内置浏览器打开调试模式,企业微信进入debug模式。 6450
  • uniapp原生Android插件开发入门教程 (最新版) 4327
  • uniapp H5使用高德地图实现点聚合、行政区域高亮(通俗易懂) 3488
  • HBuilder X 运行至于Android设备,报错创建ADB反向代理失败,当前使用的adb不支持wifi真机运行,请更换其他版本adb进行真机运行 2821
  • ES6入门篇一(let、const、变量解析赋值) 871

分类专栏

  • HBuilder X  1篇
  • uniapp 1篇

最新评论

  • uniapp原生Android插件开发入门教程 (最新版)

    qq4963384: 帖子中有个错误的地方 不是testmodule 应该是 testmode[code=html] <template> <div> <button type="primary" @click="MyTest">这是我刚写的</button> <button type="primary" @click="testAsyncFunc">testAsyncFunc</button> <button type="primary" @click="testSyncFunc">testSyncFunc</button> <button type="primary" @click="gotoNativePage">跳转原生Activity</button> </div> </template> <script> // 获取 module var testModule = uni.requireNativePlugin("TestModule") var testmode = uni.requireNativePlugin("testmodule") const modal = uni.requireNativePlugin('modal'); export default { onLoad() { plus.globalEvent.addEventListener('TestEvent', function(e){ modal.toast({ message: "TestEvent收到:"+e.msg, duration: 1.5 }); }); }, methods: { MyTest() { testmode.getTest({ 'name': 'unimp', 'age': 1 }, (ret) => { modal.toast({ message: ret, duration: 1.5 }); }) }, testAsyncFunc() { // 调用异步方法 testModule.testAsyncFunc({ [/code]

  • uniapp原生Android插件开发入门教程 (最新版)

    你看起来好像很好吃的样子: 你这篇帖子写的是真详细,可帮了大忙。官方文档不是缺这里就是缺哪里,太恶心了。总是跑不通demo。感谢楼主花费时间进行分享。

  • uniapp H5使用高德地图实现点聚合、行政区域高亮(通俗易懂)

    qq_43416302: 可能和你设置的中心点坐标有关系

  • uniapp原生Android插件开发入门教程 (最新版)

    「破忒头王哪跑」: 博主, 为什么我没有这两个文件,没有的话可能是哪里出了问题呢? 1.点击Android Studio窗口右侧的Gradle在我们刚刚创建的文件夹下面找到assembleRelease, 2.编译完成后左侧文件目录中找到目录为test/build/outputs/aar/test-release.aar 的打包产物

  • uniapp原生Android插件开发入门教程 (最新版)

    「破忒头王哪跑」: 好像每次修改都要重新本地打包才可以

大家在看

  • Linux(4)——重定向、管道及tee命令 125
  • linux—基础命令及相关知识
  • 卷积编码器通过打孔(Puncturing)来修改码率

最新文章

  • SqlServer 查询(SqlServer系列 : 篇三) 基本查询、条件查询、聚合查询、模糊查询、分组查询、多表查询(内连接,左外查询,右外查询)
  • SqlServer 增、删、改(SqlServer系列 : 篇二)
  • SqlServer 建库建表(SqlServer系列 : 篇一)
2024年9篇
2023年7篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢仿真动物雕塑供应商玻璃钢疯狂外星人雕塑玻璃钢大型城市雕塑定做价格昭通市玻璃钢雕塑加盟商江苏玻璃钢鹿雕塑巴南玻璃钢花盆花器玻璃钢雕塑为什么这么火潼南景观玻璃钢雕塑义乌玻璃钢雕塑厂家上海玻璃钢雕塑定制价格马拉车玻璃钢雕塑效果图玻璃钢雕塑作品属于什么艺术上海户内玻璃钢雕塑多少钱台州玻璃钢雕塑价格表玻璃钢彩绘骆驼雕塑佛山玻璃钢异形雕塑商场玻璃钢花盆销售厂家绍兴玻璃钢花盆销售玻璃钢牛雕塑设计河源玻璃钢雕塑凳子商场美陈的美陈概述云南城市几何玻璃钢雕塑玻璃钢蔬菜雕塑建造佛山水泥玻璃钢花盆厂卡通鸡玻璃钢雕塑广东多彩玻璃钢雕塑销售厂家台州玻璃钢雕塑报价常用指南周口校园玻璃钢景观雕塑价格贵州园林景观玻璃钢美陈雕塑深圳欧式人物玻璃钢雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化