<div class="mapControl">
<div class="mapControlRow">
<input id="searchPlaceInput" placeholder="查找" type="text" autofocus="false" />
<button onclick="searchPlace()">搜索</button>
</div>
</div>
button {
color: #ffffff;
border: none;
border-radius: 10px;
background-color: #d3a3ff;
padding: 8px 15px;
}
input {
width: 70%;
height: 33px;
padding-left: 10px;
border: none;
border-radius: 10px;
outline: none;
}
input:focus {
outline: none;
}
.mapControl {
position: absolute;
bottom: 15px;
left: 50%;
width: 100%;
transform: translateX(-50%);
z-index: 2023;
}
.mapControlRow {
display: flex;
align-items: center;
justify-content: space-around;
margin-bottom: 10px;
}
// 搜索地名
const searchPlace = () => {
const keyWord = document.getElementById("searchPlaceInput").value;
const url = "https://api.tianditu.gov.cn/v2/search";
const params = {
postStr: JSON.stringify({
keyWord,
level: 5,
mapBound: "-180,-90,180,90",
queryType: 1,
start: 0,
count: 100,
}),
type: "query",
// 改成自己申请的天地图应用的key
tk: "84762e0e00395c65cbe043be0d6451b3",
};
// 将参数拼接到 URL 上
const query = Object.keys(params)
.map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join("&");
const fullUrl = `${url}?${query}`;
fetch(fullUrl)
.then((response) => response.json())
.then((data) => {
console.log("web接口", data);
// 处理返回的数据
})
.catch((error) => {
console.error("请求出错:", error);
// 处理错误
});
};
// 搜索对象
let localsearch = null;
// 初始化地图
const initMap = () => {
...其他代码
initSearch();
};
// 初始化搜索
const initSearch = () => {
const config = {
// 每页显示的数量
pageCapacity: 99999,
// 接收数据的回调函数
onSearchComplete: localSearchResult,
};
// 创建搜索对象
localsearch = new T.LocalSearch(map, config);
};
// 搜索的回调函数
const localSearchResult = (result) => {
console.log("搜索结果", result);
};
// 搜索地名
const searchPlace = () => {
const keyWord = document.getElementById("searchPlaceInput").value;
localsearch.search(keyWord);
};
// 搜索的回调函数
const localSearchResult = (result) => {
console.log("搜索结果", result);
// 获取搜索结果的类型
const resultType = parseInt(result.getResultType());
// 如果是点位搜索
if (resultType === 1) {
const points = result.getPois();
console.log("搜索到的点位信息", points);
...其他操作
} else if (resultType === 3) {
// 地方行政搜索
const area = result.getArea();
console.log("搜索到的区域信息", area);
} else {
console.log("不支持其他类型的搜索,搜索类型为", resultType);
}
};
此页面不支持夜间模式!
已进入夜间模式!
已进入普通模式!
搜索框不允许为空
签到成功!经验+5!芋圆币+2!
签到失败!今日已签到!
需要登录社区账号才可以进入!