前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >买房,GIS能做点什么(一)

买房,GIS能做点什么(一)

作者头像
lzugis
发布2020-12-22 16:14:28
9770
发布2020-12-22 16:14:28
举报
文章被收录于专栏:跟牛老师一起学WEBGIS

概述

作为当代年轻人,“买房”是压在我们头上的几座大山之一,但是大部分人还是没有经验的,再加上鱼龙混杂的房产中介,买房的时候很容易被割韭菜。本文讲讲如何结合GIS找到一个离地铁近、价格又比较美丽的二手房。

需求

在一线城市要饭,开车是不可能的:一方面贫穷限制了开车,另一方面有车也堵的跑不动,所以近地铁是最基本的需求;第二,由于贫穷,离地铁近除外,在价格低势必也是我们选择房子的时候一个考量;第三,周边环境与配套。 例如:广州-增城-新塘站附近

数据

  1. 高德地图,矢量和影响图作为底图数据用来分析;
  2. 贝壳找房中地图找房功能的数据作为小区位置个价格参考。
  3. 高德地铁数据,作为地铁线路和站点分析数据。

实现

高铁数据获取

前面的文章如何从高德中获取地铁数据里面提到了如何从高德地铁地图中获取地铁数据并处理。

代码语言:javascript
复制
// 地铁站点
$.get('data/subway.json', function (res) {
    var geojson = {
        'type': 'FeatureCollection',
        'features': []
    };
    res = res['l'];
    var stations = {};
    for (var i = 0; i < res.length; i++) {
        const r = res[i];
        var kn = r['kn'];
        var ln = r['ln'];
        var cl = r['cl'];
        var ls = r['ls'];
        var st = r['st'];
        var lineInfo = {
            kn: kn,
            ln: ln,
            cl: cl,
            ls: ls
        };
        for (let j = 0; j < st.length; j++) {
            var s = st[j];
            // 站点去重
            if(!stations[s['poiid']]) {
                stations[s['poiid']] = true;
                var coords= s.sl.split(',').map(Number);
                var properties = Object.assign(s, lineInfo);
                geojson.features.push({
                    type: 'Feature',
                    geometry: {
                        type: 'Point',
                        coordinates: coords
                    },
                    properties: properties
                });
            }
        }
    }
    console.log(JSON.stringify(geojson));
})
// 地铁线路
$.get('data/subway-gz.json', function (res) {
        var geojson = {
            'type': 'FeatureCollection',
            'features': []
        };
        res = res['l'];
        for (var i = 0; i < res.length; i++) {
            const r = res[i];
            var st = r['st'];
            var coords = [];
            for (let j = 0; j < st.length; j++) {
                var s = st[j];
                var _coords= s.sl.split(',').map(Number);
                coords.push(_coords);
            }
            geojson.features.push({
                type: 'Feature',
                geometry: {
                    type: 'LineString',
                    coordinates: coords
                },
                properties: r
            });

        }
        console.log(JSON.stringify(geojson));
    })

房屋信息获取

打开贝壳找房,打开浏览器调试模式,获取房屋信息。

在这里插入图片描述
在这里插入图片描述

将获取到的数据进行处理,转成点数据,在处理的过程中,引入turf.js用以计算小区到地铁站的(直线)距离,处理代码如下:

代码语言:javascript
复制
    $.get('data/zengcheng1.json', function (res) {
        let features = [];
        const from = turf.point([113.636569,23.137226]);
        for (let i = 0; i < res.length; i++) {
            const r = res[i];
            const coord = [r.longitude, r.latitude];
            const to = turf.point(coord);
            const options = {units: 'kilometers'};
            const distance = turf.distance(from, to, options);
            const feature = {
                "type": "Feature",
                "geometry": {
                    "type": "Point",
                    "coordinates": coord
                },
                "properties": {
                    count:r.count,
                    latitude: r.latitude,
                    longitude: r.longitude,
                    name: r.name,
                    price: parseInt(r.price),
                    distance: distance
                }
            };
            features.push(feature);
            if(r.border) {
                const coords = [];
                const border = r.border.split(';');
                for (let j = 0; j < border.length; j++) {
                    const coord = border[j].split(',').map(Number);
                    coords.push(coord);
                }
                coords.push(coords[0]);
                feature.properties.border = coords;
            }
        }
        const geojson = {
            'type': 'FeatureCollection',
            'features': features
        };
        console.log(JSON.stringify(geojson));
    })

制图分析

最后将上述三数据叠加到地图上加以展示,最终成图后的效果如下:

说明

  1. 上图中,按照到地铁站的直线距离做了分级渲染,蓝色代表距离1公里以内,红色代表5公里以外;
  2. 名称后面的数字标注是小区房子的挂售均价;

分析: 有了上两张图,我们其实可以获取到很多的信息的:1.距离地铁站比较近的小区有哪些;2. 小区的销售均价;3.通过影像图可以分析周边地理环境,如植被覆盖情况;4.通过矢量图可以分析交通情况、周边人文情况,如学校、商超等。

通过以上数据的,我们可以建立起一个比较全面的概况信息,在实际买房的时候可以有的放矢的去看。其实通过GIS买房,我们其实可以有更多的使用方式与场景,本文由于时间和篇幅的关系就先说到这,后面有时间带你一起去挖挖“买房,GIS能做点什么”。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 需求
  • 数据
  • 实现
    • 高铁数据获取
      • 房屋信息获取
        • 制图分析
        相关产品与服务
        图数据库 KonisGraph
        图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档