Android仿美团地址选择

最近做了这个功能,分享一下,用的是百度地图api,和美团外卖的地址选择界面差不多,也就是可以搜索或者滑动地图展示地址列表给用户选择,看下效果图先。

 

          分享图片

 

文章重点

1、展示地图并定位到“我”的位置
2、滑动地图获取周边poi(逆地理编码)
3、搜索框输入查询poi(POI检索)


 

前言

这里先提一下,我们要选择的地址信息其实是POI(Point of Interest),即“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个景点、一个邮筒或者一个公交站等。
百度地图SDK提供三种类型的POI检索:城市内检索、周边检索和区域检索(即矩形区域检索)。这里我就不详细介绍了,具体请查看百度地图开发文档(http://lbsyun.baidu.com/index.php?title=androidsdk)。

 

需求分析

我们要实现的功能主要包括两个操作:滑动地图和搜索框搜索。

  • 滑动地图:滑动地图主要是获取滑动后地图中心点坐标,然后获取poi信息,但是这里不能用上面提到的三种POI检索方式,POI检索都需要传入关键字(不能为空),而我们仅仅只是滑动地图,所以需要用另外一种方式:逆地理编码检索。使用逆地理编码检索时,可以通过检索结果ReverseGeoCodeResult类的getPoiList()方法获取传入位置周围的POI信息。
  • 搜索框搜索:这里就可以使用百度地图SDK提供的三种POI检索方式来进行检索,同时为了方便查看,还可以计算出每个POI和用户之间的距离。

 

具体实现

一、展示地图并定位到“我”的位置

1.展示地图

展示地图非常简单,首先需要调用SDKInitializer.initialize()方法来进行初始化操作,它接收一个全局的Context参数,记得初始化操作一定要在setContentView()方法前调用(可以到application中进行初始化),然后调用findViewById()方法获取MapView实例,最后记得要对MapView进行资源释放。

2.移动到我的位置

 2.1 获取我的位置
 首先要确定自己的位置,代码如下所示:

public class MainActivity extends AppCompatActivity implements OnGetPoiSearchResultListener {
    private MyLocationListener myListener = new MyLocationListener();
    public LocationClient mLocationClient = null;
    private LocationClientOption option = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initLocation();
    }

    /**
     * 初始化定位相关
     */
    private void initLocation() {
        // 声明LocationClient类
        mLocationClient = new LocationClient(getApplicationContext());
        mLocationClient.setLocOption(option);
        // 注册监听函数
        mLocationClient.registerLocationListener(myListener);
        mLocationClient.start();
    }

    /**
     * 监听当前位置
     */
    public class MyLocationListener extends BDAbstractLocationListener {
        @Override
        public void onReceiveLocation(BDLocation location) {
            //mapView 销毁后不在处理新接收的位置
            if (location == null || mMapView == null) {
                return;
            }
            if (location.getLocType() == BDLocation.TypeGpsLocation
                    || location.getLocType() == BDLocation.TypeNetWorkLocation) {
                Log.e(TAG, "当前“我”的位置:" + location.getAddrStr());
                navigateTo(location);
            }
        }
    }
}

 

可以看到,我们首先创建LocationClient实例,然后调用LocationClient的registerLocationListener()方法来注册一个定位监听器,当获取到位置信息的时候,就会回调这个定位监听器。开启定位很简单,只需要调用一下LocationClient的start()方法就可以了。
定位的结果会回调到监听器中,也就是MyLocationListener,在onReceiveLocation()方法中即可通过BDLocation对象获取相关位置详细信息。

注:定位属于危险权限,所以要动态权限申请,记得不要忘记了。

 

2.2 移动到我的位置
获取到定位后就需要将地图中心点移动到当前位置,代码如下:

    private boolean isFirstLocation = true;
    /**
     * 根据获取到的位置在地图上移动“我”的位置
     *
     * @param location
     */
    private void navigateTo(BDLocation location) {
        double longitude = location.getLongitude();
        double latitude = location.getLatitude();
        if (isFirstLocation) {
            currentLatLng = new LatLng(latitude, longitude);
            MapStatus.Builder builder = new MapStatus.Builder();
            MapStatus mapStatus = builder.target(currentLatLng).zoom(17.0f).build();
            mBaiduMap.animateMapStatus(MapStatusUpdateFactory
                    .newMapStatus(mapStatus));
            isFirstLocation = false;
        }
       //让“我”显示在地图上
        MyLocationData.Builder locationBuilder = new MyLocationData.Builder();
        locationBuilder.latitude(location.getLatitude());
        locationBuilder.longitude(location.getLongitude());
        MyLocationData locationData = locationBuilder.build();
        mBaiduMap.setMyLocationData(locationData);
    }

这里首先将位置信息封装到LatLng对象中,然后调用MapStatusUpdateFactory
的newMapStatus()将LatLng对象传入,接着返回的MapStatusUpdate对象作为参数传入到BaiduMap的animateMapStatus()方法中。上述代码中还使用了一个变量来防止多次调用animateMapStatus()方法,因为移动地图只需要在程序第一次定位时调用一次。
同时为了显示一个当前设备的光标,可以利用MyLocationData.Builder类来实现,如代码所示,就可将“我”显示在地图上了。

二、滑动地图获取poi(逆地理编码)

1. 逆地理编码

前面已经提到了,我们这里滑动地图需要用到逆地理编码,也就是反向地理解析,逆地理编码就是将坐标转换为详细的地址信息,代码如下:

    //反向地理解析(含有poi列表)
    mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption().location(center));

    /**
     * 反向地理解析,结果中含有poi信息,用于刚进入地图和移动地图时使用
     */
    private void initGeoCoder() {
        mGeoCoder = GeoCoder.newInstance();
        mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
            @Override
            public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {

            }

            @Override
            public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
                if (reverseGeoCodeResult.error.equals(SearchResult.ERRORNO.NO_ERROR)) {
                    //获取poi列表
                    if (reverseGeoCodeResult.getPoiList() != null) {
                        poiInfoListForGeoCoder = reverseGeoCodeResult.getPoiList();
                    }
                } else {
                    Toast.makeText(mContext, "该位置范围内无信息", Toast.LENGTH_SHORT);
                }
            }
        });
    }

这里我们首先获取一个GeoCoder实例,然后注册监听器,当有解析结果时便会回调到onGetReverseGeoCodeResult()方法中,而解析结果便有我们需要的poi列表。反向解析只需要调用GeoCoder的reverseGeoCode()方法并传入移动后地图的中心坐标点即可。

 

2. 监听地图滑动

百度地图提供了一个地图状态改变的监听器,当双击、滑动、缩放等操作时便进行回调,如下:

        mBaiduMap.setOnMapStatusChangeListener(new BaiduMap.OnMapStatusChangeListener() {

            /**
             * 手势操作地图,设置地图状态等操作导致地图状态开始改变。
             * @param mapStatus 地图状态改变开始时的地图状态
             */
            @Override
            public void onMapStatusChangeStart(MapStatus mapStatus) {
            }

            /** 因某种操作导致地图状态开始改变。
             * @param mapStatus 地图状态改变开始时的地图状态
             * @param i 取值有:
             * 1:用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图
             * 2:SDK导致的地图状态改变, 比如点击缩放控件、指南针图标
             * 3:开发者调用,导致的地图状态改变
             */
            @Override
            public void onMapStatusChangeStart(MapStatus mapStatus, int i) {
                Log.e(TAG, "地图状态改变开始时:" + i + "");
            }

            /**
             * 地图状态变化中
             * @param mapStatus 当前地图状态
             */
            @Override
            public void onMapStatusChange(MapStatus mapStatus) {
                LatLng latlng = mBaiduMap.getMapStatus().target;
                addMarker(latlng);
            }

            /**
             * 地图状态改变结束
             * @param mapStatus 地图状态改变结束后的地图状态
             */
            @Override
            public void onMapStatusChangeFinish(MapStatus mapStatus) {
                center = mBaiduMap.getMapStatus().target;
                //反向地理解析(含有poi列表)
                mGeoCoder.reverseGeoCode(new ReverseGeoCodeOption()
                        .location(center));
            }
        });

如上,当地图从滑动到结束会回调4个方法,我们需要用到的是:地图状态变化中和地图状态改变结束,也就是对应地图滑动中和滑动结束时。
滑动结束:当滑动结束时便调用反向地理解析出结果,这个上面已经说了。
滑动中:我们会发现当我们滑动地图时,地图上会有一个图标始终处于地图中心,这里就是利用地图状态变化中这个回调来添加一个marker,也就是在地图上添加一个图标,不过这个方法一次滑动可能会回调很多次,但是如果只在滑动结束后添加,用户体验不好,所以如果实在要考虑性能的话可以换个思路,将图标固定在屏幕上大致地图的中心,这样滑动地图看起来也一样的。
添加marker的方法就不详解了,源码里有,一看就懂了。

三、搜索框输入查询poi(POI检索)

搜索框搜索也就是使用关键字检索POI信息,这里不要和Sug检索弄混了,Sug(Suggestion POI search)检索是根据部分关键字检索出可能的完整关键字名称,即关键字匹配。而POI检索是根据关键字检索符合的POI具体信息。
上面说过POI检索有三种方式,这里结合我们的需求来说,使用城市内检索更加合适,也就是传入城市和关键字进行查询,当然你也可以使用另外两种检索方式,步骤如下:

1. 创建POI检索实例

mPoiSearch = PoiSearch.newInstance();

 

2. 创建POI检索监听器

OnGetPoiSearchResultListener listener = new OnGetPoiSearchResultListener() {
    /**
     * 获取POI搜索结果
     * @param poiResult Poi检索结果,包括城市检索,周边检索,区域检索
     */
    @Override
    public void onGetPoiResult(PoiResult poiResult) {
        if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) {
            poiInfoListForSearch = poiResult.getAllPoi();//POI集合
        }

        if (poiResult.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) {
            // 当输入关键字在本市没有找到,但在其他城市找到时,返回包含该关键字信息的城市列表
            String strInfo = "在";
            for (CityInfo cityInfo : poiResult.getSuggestCityList()) {
                strInfo += cityInfo.city;
                strInfo += ",";
            }
            strInfo += "找到结果";
            Toast.makeText(mContext, strInfo, Toast.LENGTH_LONG).show();
        }
    }
    @Override
    public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {

    }
    @Override
    public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {

    }
    //废弃
    @Override
    public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {

    }
};

 

3. 设置检索监听器

mPoiSearch.setOnGetPoiSearchResultListener(listener);

 

4. 发起检索请求

mPoiSearch.searchInCity((new PoiCitySearchOption())
        .city(cityName)//城市名称
        .keyword(keyword)//必填
        .pageCapacity(pageSize)//每页条数
        .pageNum(loadIndex));//分页页码

 

5. 释放检索实例

mPoiSearch.destroy();


为了方便用户查看,我们可以在列表中展示每一个poi和用户之间的距离,利用DistanceUtil类的getDistance()方法传入两个点坐标的LatLng对象即可计算,如下:

double distance=DistanceUtil.getDistance(currentLatLng, latLng);

 

最后利用EditText的addTextChangedListener监听器监听输入框,如果值改变就进行检索。


 

至此,整个功能也就做完了,demo里没有做列表分页和动态权限申请,这个常用的你们就自个加咯,最后放下demo地址:
GitHub:https://github.com/yangxch/BaiDuMapSelectDemo

 

原创不易,转载请注明出处!

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
香港蓝月亮精选免费资料大全,香港蓝月亮精选免费资料大全期期准app预约 黑龙江省| 密云县| 阜康市| 上虞市| 广丰县| 桐庐县| 普安县| 循化| 舒兰市| 通许县| 罗江县| 三穗县| 克山县| 楚雄市| 绥宁县| 邛崃市| 米泉市| 南宫市| 滨海县| 柘荣县| 皮山县| 崇文区| 荆州市| 桂阳县| 两当县| 厦门市| 白城市| 泽州县| 仁布县| 桐庐县| 上栗县| 温宿县| 海门市| 梅州市| 昌吉市| 武邑县| 桃源县| 花垣县| 出国| 玛纳斯县| 准格尔旗| 隆昌县| 邵东县| 石阡县| 内丘县| 旅游| 五大连池市| 阜宁县| 安阳市| 峨眉山市| 江陵县| 广汉市| 北流市| 泸州市| 仙居县| 连城县| 什邡市| 桂阳县| 娱乐| 临汾市| 青河县| 宁安市| 平乐县| 诸城市| 淅川县| 新河县| 洛川县| 长春市| 荆门市| 栖霞市| 德阳市| 麻城市| 阿城市| 寻乌县| 新疆| 肇庆市| 玉山县| 桂阳县| 荥经县| 绍兴县| 白山市| 门头沟区| 方正县| 杂多县| 仪陇县| 景谷| 青田县| 日土县| 堆龙德庆县| 巴里| 深水埗区| 瑞昌市| 城市| 密山市| 民勤县| 正定县| 太仆寺旗| 永定县| 大荔县| 司法| 文安县| 咸宁市| 阳泉市| 新干县| 察哈| 滦平县| 崇阳县| 仙居县| 奎屯市| 鄂伦春自治旗| 介休市| 韩城市| 余江县| 赣榆县| 平陆县| 齐河县| 谢通门县| 板桥市| 安龙县| 三原县| 镇平县| 平凉市| 安义县| 宜良县| 喜德县| 加查县| 泸水县| 翁源县| 舟山市| 长岛县| 同仁县| 宣恩县| 拉孜县| 临泽县| 简阳市| 河间市| 民丰县| 宝应县| 博湖县| 晋宁县| 台东县| 磐安县| 白城市| 高邑县| 青海省| 社旗县| 金山区| 丰台区| 浙江省| 灯塔市| 连山| 砀山县| 雷山县| 保亭| 滨州市| 城口县| 介休市| 土默特左旗| 二连浩特市| 凤翔县| 南康市| 阳原县| 乐东| 隆昌县| 渭源县| 永泰县| 永济市| 获嘉县| 华坪县| 宁武县| 蒙自县| 贡嘎县| 莒南县| 鹿泉市| 池州市| 满城县| 黑龙江省| 定陶县| 德昌县| 勃利县| 苗栗县| 东城区| 垦利县| 宣恩县| 多伦县| 灵璧县| 新田县| 昌宁县| 嘉善县| 大厂| 佛冈县| 宜昌市| 津市市| 兰坪| 北辰区| 台山市| 广宗县| 鲁山县| 汝城县| 高唐县| 开化县| 临潭县| 海安县| 庆云县| 扶余县| 盐城市| 思茅市| 弥渡县| 新绛县| 望奎县| 博客| 溆浦县| 调兵山市| 河东区| 宝兴县| 石泉县| 治多县| 铁岭县| 于都县| 惠安县| 尉氏县| 郴州市| 湟源县| 湛江市| 高碑店市| 彭阳县| 达日县| 伊宁县| 赤城县| 邓州市| 清原| 集贤县| 竹北市| 壤塘县| 庄河市| 中卫市| 呼伦贝尔市| 黄骅市| 东兰县| 池州市| 八宿县| 桦南县| 浑源县| 新乡县| 两当县| 蒙自县| 贵定县| 沿河| 镇雄县| 贵州省| 同仁县| 鸡西市| 邵武市| 玉山县| 开平市| 民丰县| 阿拉善右旗| 高碑店市| 贵阳市| 汝州市| 乌海市| 新巴尔虎右旗| 界首市| 启东市| 四会市| 简阳市| 达日县| 江华| 洛扎县| 乐山市| 临泽县| 平远县| 巴塘县| 四会市| 延津县| 子长县| 霞浦县| 栾城县| 新竹县| 噶尔县| 建始县| 东山县| 武威市| 玉林市| 湖南省| 比如县| 且末县| 土默特左旗| 靖江市| 五华县| 庄浪县| 峨边| 利川市| 许昌市| 裕民县| 饶平县| 诸暨市| 阜南县| 富蕴县| 合肥市| 泸定县| 娱乐| 四子王旗| 镇平县| 苏尼特右旗| 富顺县| 英山县| 临海市| 龙江县| 黄大仙区| 调兵山市| 蓬安县| 德惠市| 内黄县| 鄯善县| 石嘴山市| 新安县| 易门县| 台东市| 广德县| 凤山县| 茶陵县| 霍州市| 独山县| 龙泉市| 榕江县| 彭水| 广灵县| 梁山县| 姚安县| 乾安县| 株洲县| 长白| 和平县| 治县。| 大荔县| 铅山县| 毕节市| 宾川县| 长沙县| 望谟县| 佛山市| 勃利县| 额济纳旗| 淅川县| 巢湖市| 阜阳市| 芦溪县| 怀远县| 新巴尔虎左旗| 平利县| 建昌县| 天水市| 大同市| 盘山县| 繁昌县| 南京市| 漳平市| 怀化市| 方城县| 子洲县| 西乌| 定安县| 孝昌县| 廊坊市| 吕梁市| 桦南县| 邢台县| 玉山县| 虎林市| 武陟县| 尉犁县| 大丰市| 龙江县| 长白| 舟曲县| 甘肃省| 孙吴县| 朔州市| 仙游县| 滦平县| 门头沟区| 广丰县| 阳谷县| 胶南市| 郧西县| 赞皇县| 南丹县| 富锦市| 阳春市| 福鼎市| 施甸县| 都兰县| 浮山县| 牟定县| 雅江县| 兴义市| 陆良县| 四子王旗| 宁陕县| 连平县| 大同市| 雷山县| 崇礼县| 隆回县| 泸水县| 云阳县| 海口市| 眉山市| 崇阳县| 扬中市| 文安县| 同心县| 宁明县| 闽清县| 资讯| 梁河县| 芜湖县| 慈利县| 汕尾市| 金乡县| 苍南县| 临猗县| 土默特左旗| 花莲市| 余江县| 龙陵县| 曲沃县| 濉溪县| 仁寿县| 都江堰市| 石泉县| 应用必备| 铁岭市| 石泉县| 仁寿县| 怀集县| 苍溪县| 昌乐县| 广昌县| 西昌市| 大石桥市| 岱山县| 禹州市| 筠连县| 堆龙德庆县| 镇沅| 芒康县| 宁国市| 临洮县| 梧州市| 大安市| 九台市| 晋江市| 卫辉市| 湟源县| 莱芜市| 拜城县| 白城市| 南昌县| 五常市| 义乌市| 扎鲁特旗| 城市| 琼结县| 玛纳斯县| 上思县| 外汇| 南岸区| 太湖县| 修水县| 威信县| 临潭县| 台湾省| 泾阳县| 安阳市| 漠河县| 合水县| 宜昌市| 饶阳县| 旌德县| 会东县| 拜城县| 鸡东县| 邢台县| 盐山县| 大理市| 仪陇县| 北京市| 天气| 武定县| 彰武县| 吴忠市| 化德县| 广汉市| 会理县| 福海县| 修水县| 鄱阳县| 原阳县| 永安市| 安国市| 吴旗县| 赤峰市| 临潭县| 建湖县| 米脂县| 龙岩市| 巧家县| 略阳县| 顺义区| 宁波市| 兴安盟| 千阳县| 拉萨市| 罗田县| 塘沽区| 巴中市| 罗源县| 顺昌县| 贞丰县| 灌南县| 宜城市| 岑溪市| 陕西省| 梁河县| 长阳| 台北市| 彰化市| 岳阳市| 大新县| 三门县| 宜良县| 商丘市| 桑植县| 叙永县| 夹江县| 威宁| 新余市| 枝江市| 昔阳县| 南木林县| 定南县| 奎屯市| 育儿| 汶川县| 石楼县| 容城县| 内江市| 定安县| 上栗县| 巨鹿县| 确山县| 揭西县| 临潭县| 金堂县| 辽宁省| 凉山| 专栏| 岚皋县| 平谷区| 武夷山市| 和龙市| 自治县| 镇原县| 全州县| 垦利县| 淮南市| 朝阳市| 英吉沙县| 南澳县| 东乌| 随州市| 孟连| 阿瓦提县| 呼图壁县| 怀宁县| 阳朔县| 马山县| 井冈山市| 兴和县| 楚雄市| 德州市| 敦化市| 大同市| 永兴县| 沙湾县| 鸡东县| 枣庄市| 托克逊县| 泾源县| 武清区| 凉山| 静乐县| 孟村| 太原市| 涿州市| 景洪市| 南丹县| 伊金霍洛旗| 清苑县| 金门县| 阿坝县| 叙永县| 宁蒗| 会东县| 海原县| 巴楚县| 景泰县| 舒城县| 辽阳市| 北辰区| 会同县| 马边| 山阴县| 安陆市| 凤山县| 扶绥县| 康马县| 柯坪县| 昌图县| 建湖县| 明水县| 壶关县| 剑河县| 云霄县| 昌宁县| 黄浦区| 甘孜| 鄂托克前旗| 金阳县| 深水埗区| 平山县| 仙居县| 建昌县| 通州区| 大荔县| 怀集县| 吉安县| 西藏| 林口县| 富川| 鹿泉市| 吉安县| 车险| 保山市| 桦南县| 公安县| 安顺市| 盐边县| 高雄县| 彝良县| 肃南| 弥勒县| 左贡县| 乌兰浩特市| 长宁区| 吉安市| 名山县| 称多县| 竹溪县| 田阳县| 达尔| 佛山市| 贵阳市| 习水县| 新郑市| 靖西县| 兖州市| 资源县| 淮安市| 丘北县| 原平市| 勐海县| 依安县| 防城港市| 曲靖市| 阳泉市| 新昌县| 湖口县| 修文县| 扶绥县| 越西县| 洛宁县| 青冈县| 八宿县| 凤山县| 白银市| 吉隆县| 申扎县| 辉南县| 长沙县| 罗平县| 延长县| 大名县| 大丰市| 瑞昌市| 朝阳县| 嘉禾县| 南澳县| 亳州市| 万山特区| 句容市| 行唐县| 芜湖县| 彝良县| 文水县| 石家庄市| 津南区| 万宁市| 自治县| 双柏县| 简阳市| 靖安县| 新绛县| 靖边县| 将乐县| 威远县| 故城县| 马龙县| 方山县| 拉萨市| 镇巴县| 庄河市| 丰台区| 颍上县| 山西省| 西青区| 阜宁县| 邯郸市| 靖远县| 阳新县| 南靖县| 马尔康县| 正定县| 丹江口市| 永仁县| 鄯善县| 丰原市| 屯门区| 青河县| 宜君县| 巫山县| 武宣县| 拜泉县| 申扎县| 信丰县| 奎屯市| 余姚市| 岳阳县| 探索| 城固县| 内丘县| 中超| 甘孜县| 襄城县| 漳浦县| 阳高县| 田阳县| 佳木斯市| 贺兰县| 新野县| 宜兰市| 清流县| 洛南县| 奉贤区| 江永县| 彰化市| 墨玉县| 穆棱市| 嘉义县| 德令哈市| 米脂县| 屏山县| 蕲春县| 搜索| 宁武县| 兴海县| 津市市| 台东县| 西丰县| 广昌县| 安乡县| 房产| 巫山县| 武宣县| 沐川县| 莆田市| 建德市| 手游| 宜春市| 伊金霍洛旗| 东宁县| 剑河县| 综艺| 张家港市| 汉寿县| 商南县| 松江区| 社旗县| 青龙| 永顺县| 沙洋县| 阿巴嘎旗| 陵水| 新安县| 平阳县| 武乡县| 普宁市| 大洼县| 蓬溪县| 张北县| 通州市| 来凤县| 紫阳县| 井陉县| 嘉善县| 浦江县| 大同市| 大安市| 上高县| 临洮县| 天门市| 家居| 神池县| 进贤县| 萨迦县| 大同县| 苍山县| 平塘县| 中西区| 承德县| 陕西省| 重庆市| 习水县| 大邑县| 鄂州市| 漳州市| 佛学| 白山市| 当阳市| 桐梓县| 云林县| 常山县| 革吉县| 西盟| 汽车| 福鼎市| 浏阳市| 阳西县| 永新县| 济阳县| 涿州市| 务川| 富阳市| 保山市| 大名县| 清丰县| 宝鸡市| 赤峰市| 全州县| 固阳县| 万全县| 太白县| 海南省| 梨树县| 徐水县| 修文县| 竹溪县| 唐海县| 雷州市| 馆陶县| 新安县| 晋中市| 张家港市| 荆州市| 眉山市| 丽江市| 沙湾县| 阿尔山市| 万安县| 青田县| 成武县| 东丽区| 霍城县| 攀枝花市| 武平县| 黄陵县| 松原市| 桂平市| 柘城县| 大英县| 临夏市| 乡宁县| 西吉县| 新津县| 黄平县| 祁东县| 嘉兴市| 太保市| 宜君县| 濉溪县| 苏尼特右旗| 曲水县| 西乌珠穆沁旗| 砚山县| 清水河县| 娄底市| 双峰县| 灌云县| 定远县| 富阳市| 安丘市| 华容县| 石台县| 阿荣旗| 尼木县| 天长市| 泾川县| 建昌县| 酉阳| 文化| 南宫市| 葵青区| 右玉县| 屏边| 通道| 卫辉市| 清水河县| 锦屏县| 永新县| 新巴尔虎左旗| 九江市| 隆化县| 嵊州市| 马龙县| 革吉县| 张家口市| 广宗县| 象山县| 怀远县| 昆山市| 金寨县| 莱西市| 涟源市| 昌平区| 英山县| 方山县| 灵武市| 昌宁县| 牙克石市| 年辖:市辖区| 上蔡县| 嘉义县| 安化县| 吴桥县| 长丰县| 泰安市| 闽清县| 丽水市| 刚察县| 澎湖县| 钟山县| 常德市| 东丽区| 茂名市| 建平县| 岚皋县| 科技| 昆山市| 惠东县| 穆棱市| 广饶县| 余干县| 新密市| 六安市| 蒙城县| 绥滨县| 鹿泉市| 雅安市| 铁岭市| 岳普湖县| 偃师市| 晋中市| 华安县| 汽车| 根河市| 平湖市| 贺州市| 灵川县| 莱芜市| 永春县| 靖安县| 岳西县| 顺平县| 泸州市| 广水市| 运城市| 清远市| 卓尼县| 通化市| 马鞍山市| 三亚市| 五大连池市| 类乌齐县| 嘉义市| 柞水县| 沙湾县| 合山市| 峡江县| 阿勒泰市| 湟中县| 祁阳县| 浙江省| 溆浦县| 蓝田县| 综艺| 开封县| 临海市| 龙川县| http://m.yqo1j1rl7v.fun http://www.bo2020feels.fun http://m.yqo5j0rl4v.fun http://www.gz1980weatherc.fun http://m.bo2020cozzissions.fun http://m.yqo2j4rl0v.fun http://m.jvz1j6r0o.fun http://m.gz1980notec.fun http://www.bo2020springs.fun http://www.yqo6j7rl2v.fun http://m.jvz1j4r6o.fun http://m.gz1980huzorc.fun http://www.bo2020exacts.fun http://wap.bo2020places.fun http://wap.yqo0j6rl2v.fun http://www.gz1980loopc.fun http://wap.gz1980reflectc.fun http://wap.bo2020faxs.fun http://m.yqo4j4rl9v.fun http://www.gz1980boundc.fun http://m.gz1980surveyc.fun http://www.bo2020plots.fun http://wap.bo2020rings.fun http://m.yqo9j4rl6v.fun http://wap.jvz1j6r3o.fun