高德地圖是使用比較廣的地圖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中的點標記