1.0.0 • Published 5 months ago
@medmotion-open/tdt-node v1.0.0
简化 天地图的 web 服务 API 的使用
node 环境需要设置 httpAdapter
小程序和浏览器使用见 https://www.npmjs.com/package/@medmotion-open/tdt
支持的接口
❌地名搜索 V2.0 (开发中) 类型定义部分支持
❌公交规划 (开发中)
✅地理编码接口
❌逆地理编码查询 (开发中)
❌行政区划服务 (开发中)
❌驾车规划 (开发中)
❌静态地图 API (开发中)
❌地图 API (开发中)
❌网页 API (开发中)
代理
const T_MAP = require('@medmotion-open/tdt-node');
const axios = require('axios'); // 也可以用别的
const map = new T_MAP(key, {
proxy: 'http://api.tianditu.gov.cn', // 换成你自己的
});
网络适配器 - node 环境必须
可以用自己的网络请求方法体
但是返回结果需要自己处理
用法
const T_MAP = require('@medmotion-open/tdt-node');
const axios = require('axios'); // 也可以用别的
try {
const map = new T_MAP(key, {
httpAdapter: axios.get,
});
const res = await map.gencode({
keyWord: '北京市延庆区延庆镇莲花池村前街50夕阳红养老院',
});
console.log(res);
// 或
const res = map
.gencode({
keyWord: '北京市延庆区延庆镇莲花池村前街50夕阳红养老院',
})
.then((res) => {
console.log(res);
});
} catch (error) {
console.error(error);
}
刚刚打算做个简化的使用
也是第一次尝试写个 ts 类型定义的插件包
可能比较慢,但可以自己引用 baseReques 来使用
用法如下
如官方示例为 http://api.tianditu.gov.cn/geocoder?ds={"keyWord":"北京市延庆区延庆镇莲花池村前街50夕阳红养老院"}&tk=您的密钥
const T_MAP = require('@medmotion-open/tdt-node');
const axios = require('axios'); // 也可以用别的
const map = new T_MAP(key, {
httpAdapter: axios.get,
});
const ds = JSON.stringify({
keyWord: '北京市延庆区延庆镇莲花池村前街50夕阳红养老院',
}); // 自己处理参数
map.baseRequest({
url: 'geocoder',
params: {
ds,
},
});
interface GenCodeReq {
location: {
/**
* 检索时的keyWord
*/
keyWord: string;
/**
* 坐标点显示经度
*/
lon: string;
/**
* 坐标点显示纬度
*/
lat: string;
/**
* 类别名称
*/
level?: string;
/**
* 附近相似点 开启周边查询必需返回。
*/
typeRound?: string;
};
}
map.baseRequest<GenCodeReq>({
url: 'geocoder',
params: {
ds,
},
});
1.0.0
5 months ago