如何呼叫高德地圖api
首先註冊成為高德地圖開發者,建立應用後申請key。
1.引入高德地圖API
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=您申請的key值"></script>
2.建立地圖容器
<div id="container"></div> //width:300px; height: 180px; 指定大小樣式
3.建立預設地圖
方式一
var map = new AMap.Map('container');
map.setZoom(10); //setzoom 指定縮放級別
map.setCenter([116.39,39.9]); //指定地圖中心
方式二
var map = new AMap.Map('container',{
zoom: 10,
center: [116.39,39.9]//new AMap.LngLat(116.39,39.9)
});
現在地圖就出來
常用的地圖操作:
1. 搜尋地點
2. 新增標記
3. 縮放比例尺空間
4. 地圖型別轉換
5. 路線指定
新增標記
marker = new AMap.Marker({
position: [116.39, 39.9], //標記的地圖座標
map: map
});
如果是多個地點標記可以使用陣列。遍歷迴圈標記
1 2 3 4 5 6 | for(var pin markers) { marker =new AMap.Marker({ position: markers[p], map: map }); } |
點標註可以新增引數 自定義圖示
1 2 3 4 5 6 | var marker =new AMap.Marker({ icon :'http://vdata.amap.com/icons/b18/1/2.png',//24px*24px //自定義圖示 position : provinces[i].center.split(','), offset : map : mapObj }); |
清楚標記
marker.setMap();
控制元件的新增
控制元件的種類
新增方式
1 AMap.plugin(['AMap.ToolBar', 'AMap.Scale', 'AMap.MapType'], function() {2 toolBar = new AMap.ToolBar(); //工具條3 scale = new AMap.Scale(); //比例尺4 mapType = new AMap.MapType(); //地圖種類5 map.addControl(toolBar);6 map.addControl(scale);7 map.addControl(mapType);8 })
刪除控制元件
map.removeControl(toolBar);
地圖搜尋
關鍵字搜尋外掛提供某一特定地區的興趣點位置查詢服務。允許設定搜尋城市、搜尋資料類別、搜尋結果詳略、搜尋結果排序規則等。使用者可以通過自定義回撥函式取回並顯示查詢結果。若服務請求失敗,系統將返回錯誤資訊。
使用外掛之前,需要使用AMap.service方法載入外掛,然後在回撥函式中可以進行服務的設定和查詢:
關鍵字搜尋外掛以及公交換乘外掛(AMap.Transfer)、駕車(AMap.Driving)步行(AMap.Walking)路徑規劃外掛、雲圖外掛(AMap.CloudDataSearch)都有兩種使用方式:
第一種,在建構函式裡傳入map或panel引數,或兩者都傳入。map為AMap.Map例項,panel為div元素或其id號。一旦傳入,api會自動為使用者生成互動面板和地圖展示。使用者自己控制div的顯示位置及大小,api生成的互動面板和地圖展示的面板格調可以通過修改樣式來實現,樣式名可以通過瀏覽器的除錯工具檢視。實際上,面板的生成及地圖展示是用獨立的渲染外掛實現的,使用者可以把渲染外掛下載下來任意修改預設面板的樣式及結構。程式碼示例:
var placeSearch = new AMap.PlaceSearch({ //構造地點查詢類
pageSize: 5,
pageIndex: 1,
city: "010", //城市 map: map,
panel: "result"
});//關鍵字查詢
placeSearch.search('方恆', function(status, result) {
});
第二種,直接使用服務返回的資料,構造的option中不寫map和panel屬性,在search方法中傳入回撥函式,如:
var placeSearch = new AMap.PlaceSearch({ //構造地點查詢類
pageSize: 5,
pageIndex: 1,
city: "010"//城市});//關鍵字查詢
placeSearch.search('方恆', function(status, result) {
//TODO:開發者使用result自己建立互動面板和地圖展示 result返回的一組包含地點資訊的物件
});
輸入提示
AMap.Autocomplete根據輸入關鍵字提示匹配資訊,“輸入提示”經常和“地點搜尋”配合使用,允許使用者根據輸入提示匹配結果,進行相關POI搜尋。您可以根據“輸入提示”匹配資訊,將Poi型別和城市作為輸入提示和限制條件,並自定義回撥函式來顯示查詢到的結果。當請求查詢失敗後,系統會返回錯誤資訊。在使用外掛之前,需要使用AMap.plugin方法載入外掛,然後在回撥函式中可以進行服務的設定和查詢:
1 2 3 4 5 6 7 8 9 | AMap.plugin('AMap.Autocomplete',function(){//回撥函式 //例項化Autocomplete var autoOptions = { city:"",//城市,預設全國 input:"input_id"//使用聯想輸入的input的id }; autocomplete=new AMap.Autocomplete(autoOptions); //TODO: 使用autocomplete物件呼叫相關功能 }) |
輸入提示與POI搜尋結合
通常聯想輸入提示與POI搜尋結合使用,直接顯示出搜尋結果。
AMap.plugin(['AMap.Autocomplete','AMap.PlaceSearch'],function(){
var autoOptions = {
city: "北京", //城市,預設全國
input: "input"//使用聯想輸入的input的id };
autocomplete= new AMap.Autocomplete(autoOptions);
var placeSearch = new AMap.PlaceSearch({
city:'北京',
map:map
});
AMap.event.addListener(autocomplete, "select", function(e){
//TODO 針對選中的poi實現自己的功能 placeSearch.search(e.poi.name)
});
});