geohash

1、简介:
GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串
2、实现:
网上相关原理介绍很多,不赘述,简单介绍下使用。
其中geohash的编码长度对应表如下:


image.png

我使用的是github上的开源项目:
https://github.com/kungfoo/geohash-java

测试代码:

  // 纬度坐标  wt3mf9qu
        double lat = 30.549608;
        // 经度坐标  (30.549631118774414,114.37711715698242)
        double lon = 114.376972;

        // Geohash编码字符的长度(最大为12)
        int precision = 3;
        GeoHash geoHash = GeoHash.withCharacterPrecision(lat, lon, precision);

        //中心点坐标
        WGS84Point boundingBoxCenter = geoHash.getBoundingBoxCenter();
        System.out.println(boundingBoxCenter);

        //东西南北坐标
        BoundingBox boundingBox = geoHash.getBoundingBox();
        System.out.println(boundingBox);

        String binaryCode = geoHash.toBinaryString(); // 使用给定的经纬度坐标生成的二进制编码
        System.out.println("经纬度坐标: (" + lat + ", " + lon + ")");
        System.out.println("二进制编码:" + binaryCode);
        String hashCode = geoHash.toBase32(); // 使用给定的经纬度坐标生成的Geohash字符编码
        System.out.println("Geohash编码:" + hashCode);

前端代码比较简单,就不在赘述了,
思路:根据测试代码中获取到的东西南北坐标和中心点坐标,前端传入坐标调用接口获取,然后画图即可
功能很简单,如下图:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。