高德地圖的一些使用心得

高德地圖是使用比較廣的地圖api,給開發者提供了調用api的實例和模板。javascript

要使用高德地圖,首先須要申請成爲高德地圖開發者,由於須要用到高德的key。css

支持的開發端比較廣html

如今介紹一下js端的開發java

首先是顯示地圖web

很簡單的api

先加載高德的js文件數組

    <link rel="stylesheet" href="https://cache.amap.com/lbs/static/main.css"/>
    <script type="text/javascript"
            src="https://webapi.amap.com/maps?v=1.4.1&key={{ key }}"></script>
    <script type="text/javascript" src="https://webapi.amap.com/demos/js/liteToolbar.js"></script>

而後就能夠開始在寫js了ide

要顯示地圖須要一個div元素來展現ui

<div id="mapContainer"></div>

而後在js裏面添加如下代碼spa

        var map = new AMap.Map("mapContainer", {
            resizeEnable:true,
            center: [120.155070,30.274084],
            zoom: 13,
        });

mapContainer是展現地圖的div的id,

resizeEnable就是是否能夠調整地圖大小

center是指地圖的中心點的經緯度

zoom是指地圖的層級

下面介紹下經常使用的插件

輸入提示,搜索,以及經緯度查詢

AMap.plugin(["AMap.Autocomplete","AMap.PlaceSearch", "AMap.Geocoder"], function(){
            placeSearch = new AMap.PlaceSearch({
                city: "杭州",
                map: map,
                pageSize: 1,
                pageIndex: 1,
            });
            geocoder = new AMap.Geocoder({
                city: "",
            })
            var autoOptions = {
                city: "杭州",
                input: "work-location"
            };
            autocomplete = new AMap.Autocomplete(autoOptions);
            AMap.event.addListener(autocomplete, "select", function(e){
                placeSearch.search(e.poi.name,function(status, result){
                });
            });
        });
Autocomplete是輸入提示插件
只須要構造一個包含city城市和input(輸入框id)的字典,做爲參數傳給AMap.Autocomplete
詳情見http://lbs.amap.com/api/javascript-api/guide/map-data/input_prompt
PlaceSearch是搜索插件
只須要構造一個包含city和map(地圖)的字典,做爲參數傳給AMap.PlaceSearch
經常使用的方法有search和searchNearBy,搜索關鍵詞和搜索周邊
詳情見http://lbs.amap.com/api/javascript-api/guide/map-data/search
Geocoder是經緯度查詢插件
構造一個包含city的字典,做爲參數傳給AMap.Geocoder
經常使用的方法有getAddress,getLocation分別用來用經緯度獲取地址和地址獲取經緯度
詳情見http://lbs.amap.com/api/javascript-api/guide/map-data/geocoding
接着說下建立點標記
                                var marker = new AMap.Marker({
                                    map: map,
                                    title: name,
                                    position: location,
                                })
                                rentalMarkers.push(marker);
                                var label = new AMap.Marker({
                                    map: map,
                                    title: name,
                                    content: html,
                                    position: location,
                                    offset: new AMap.Pixel(-12,-12),
                                })
                                rentalLabels.push(label);

marker就是一個點標記,label是其對應的標註

最後要提到的是
點標記如何刪除
若是是咱們本身建立的點標記
能夠使用map.remove(markers)刪除
markers能夠是一個點標記元素也能夠是一個包含點標記元素的數組
若是是高德搜索周邊獲得的點標記就稍微麻煩一點
            if(nearbySearch){
                nearbySearch.clear();
                if(nearbySearch.render){
                    nearbySearch.render.markerList.clear();
                }
            }

nearbySearch是一個PlaceSearch對象

clear方法刪除外圈的圓,接着是清空全部的nearbySearch中的點標記

相關文章
相關標籤/搜索