react+hook实现高德搜索定位
以下是一个使用React函数组件和Hooks实现高德地图搜索定位的简单示例:
import React, { useState, useRef, useEffect } from 'react';
import AMap from 'AMap'; // 确保已经在项目中引入了高德地图SDK
const AMapContainer = () => {
const [map, setMap] = useState(null);
const mapContainer = useRef(null);
useEffect(() => {
if (mapContainer.current) {
const mapInstance = new AMap.Map('map-container', {
zoom: 11,
center: [116.397428, 39.90923] // 初始化地图中心点
});
setMap(mapInstance);
}
}, []);
const onSearch = (keyword) => {
if (map) {
// 使用高德地图API的地理编码服务进行搜索
new AMap.PlaceSearch({
map: map,
city: "010" // 城市编码,此处为北京市
}).search(keyword);
}
};
return (
<div>
<div id="map-container" style={{ width: '100%', height: '400px' }} ref={mapContainer} />
<input type="text" placeholder="搜索位置" onChange={(e) => onSearch(e.target.value)} />
</div>
);
};
export default AMapContainer;
在这个示例中,我们创建了一个React函数组件AMapContainer
,它使用了useState
和useRef
来处理地图实例和DOM元素的引用。useEffect
用于在组件挂载后初始化高德地图实例。onSearch
函数利用高德地图的PlaceSearch
类来进行位置搜索,并在地图上标记搜索结果。
确保在实际项目中已经正确引入了高德地图的SDK,并且拥有有效的API Key。此外,地图的初始化和搜索功能依赖于高德地图的API服务,用户需要自行在高德开放平台注册并获取相应的API Key和服务权限。
评论已关闭