zoukankan      html  css  js  c++  java
  • 高德地图搜索功能

    参考高德API:https://lbs.amap.com/api/javascript-api/guide/overlays/marker

    实现功能:

    1.特定坐标点在地图上加上自定义图标

    2.搜索地址,跳到指定位置(这里的搜索内容结果为我自己的数据,如果需要高德提示搜索地址,它的API里有对应例子)

    首先:

    1.申请高德地图的key,申请步骤官网有

    2.引入对应高德JS

    <!--常规地图,搜索跳转到对应坐标-->
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8"/>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
        <title>Hello React!</title>
        <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
        <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
        <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
        <script type="text/javascript"
                src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的高德key"></script>
        <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
        <script type="text/javascript"
                src="https://webapi.amap.com/maps?v=1.4.15&key=b67cc7b67fb24dd2125b85c0047b319b&plugin=AMap.Autocomplete,AMap.PlaceSearch"></script>
    
        <style type="text/css">
            #container {
                width: 100%;
                height: 100vh;
            }
    
            .custom-content-marker img {
                width: 100%;
                height: 100%;
            }
    
    
            .input {
                width: 260px;
                height: 32px;
            }
    
            .searchBar {
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                padding: 12px;
                background: #fff;
                text-align: center;
            }
            .searchBtn{
                height: 32px;
                margin: 0 8px;
            }
        </style>
    </head>
    <body>
    
    <div id="app"></div>
    <script type="text/babel">
    
        class Index extends React.Component {
            constructor(props) {
                super(props);
                this.state = {
                    map: {}
                };
            }
    
            componentDidMount() {
                var markers = [];
                var positions = [[116.405467, 39.907761], [116.415467, 39.907761], [116.415467, 39.917761], [116.425467,
                    39.907761], [116.385467, 39.907761]];
                // 创建地图实例
                var map = new AMap.Map("container", {
                    resizeEnable: true,
                    center: [116.397428, 39.90923],
                    zoom: 13
                });
                for (var i = 0, marker; i < positions.length; i++) {
                    marker = new AMap.Marker({
                        map: map,
                        icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-' + (i + 1) + '.png',
                        position: positions[i]
                    });
                    markers.push(marker);
                }
    
    
                this.setState({
                    map
                })
            }
    
            // 清除 marker
            clearMarker = () => {
                markers[0].setMap(null);
                markers[2].setMap(null);
            };
    
            search = () => {
                const {map} = this.state;
                var placeSearch = new AMap.PlaceSearch({
                    map: map
                });  //构造地点查询类,测试用,写死固定地址
                placeSearch.search('浙江工业大学');
            };
    
            render() {
                const {} = this.state;
                return (
                    <div>
                        <div id="container"/>
                        <div className="searchBar">
                            <input className="input"/>
                            <button className="searchBtn" onClick={() => this.search()}>查询</button>
                        </div>
                    </div>
                );
            }
        }
    
        ReactDOM.render(
            <Index/>,
            document.getElementById('app')
        );
    </script>
    </body>
    </html>

    运行结果

    每天进步一点点~

  • 相关阅读:
    js中属性和方法的类型和区别
    深入理解js构造函数
    null和undefined区别(转)
    理解闭包 js回收机制
    php:判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装MEMCACHED
    php:封装了个时间函数,返回类似“1分钟前发布”,“5小时前发布”,“3年前发布”
    php:获取一个表不含text类型的全部字段
    php:两个文件夹递归地比较,没有的文件自动复制过去
    php:php相关的函数或用法记录
    js:常用到的js操作记录
  • 原文地址:https://www.cnblogs.com/abigting/p/13187161.html
Copyright © 2011-2022 走看看