jackdou/chinamap

汇集了中国国内主流地图webAPI,接口统一,使用方便

1.3.1 2023-04-27 09:07 UTC

This package is auto-updated.

Last update: 2024-09-27 12:27:13 UTC


README

laravel扩展 中国地图 webApi 集合

功能介绍

地图是我们在应用中经常需要使用的功能,包括用户定位,IP地址转换,地理位置正/逆编码等等。 国内目前有许多地图API提供接口,但每个公司的接口都不尽相同,为了方便使用不同的地图API,因此编写了这个包。 目前已集合了国内较大的主流地图,包括百度,高德,腾讯等,实现了常用功能,并且功能会不断扩展。 如果遇到使用问题或bug,可以提交issues。

安装说明

  • 使用composer安装

    composer require jackdou/chinamap

    建议使用 中国composer全量镜像

  • 配置

    在 config/app.php providers数组 内添加一行

    Jackdou\Chinamap\ChinamapServicesProvider::class

    执行命令生成配置文件

    php artisan vendor:publish

    需要使用哪种地图接口,需要先去相应的地图网站申请成为应用开发者,具体操作请参阅相关文档。

    百度地图 高德地图 腾讯地图

    注意:申请了应用对应的密钥后,需要再配置文件config/chinamap.php中对应的添加上

  • 使用 直接使用Map门面调用

    IP定位
    Map::locateIp($ip) //使用配置里的默认地图选择
    Map::type('amap')->locateIp($ip) //使用选择的地图,amap为高德 baidu为百度,qq为腾讯
    //注意:type方法如果调用则必须为第一个调用
    Map::outPut()->locateIp($ip); 
    //选择输出格式,默认为json,调用outPut后无需传参数,返回格式变成xml(部分地图接口不支持返回xml格式,详细请参见对应的api文档)
    
    地理位置编码/逆编码 (暂不支持批量查询)
    Map::address('上海市虹口区政府')
        ->city('上海市')
        ->geoCoder(); //地理位置编码,具体的地址参数的详细要求参见具体文档,qq地图暂不支持city方法
    Map::location('31.271,121.494')
        ->geoCoder(); //地理位置逆编码 百度和qq为纬度在前,经度在后,高德地图相反 
    
    坐标转换
    Map::geoConvert('114.21892734521,29.575429778924');
    
    路径规划
    Map::origin('40.056878,116.30815)->transit('40.056878,116.30815');
    Map::transitType('walking')->origin('40.056878,116.30815')->transit('40.056878,116.30815');
    
  • v1.3 最新版本功能暂时处于测试阶段