日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【百度地图API】如何制作商圈地图?行政地图?

發布時間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 【百度地图API】如何制作商圈地图?行政地图? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要:

  想要顯示某一個區域,并且鼠標放上去,該區域就會變色。這時,你就需要巧用多邊形覆蓋物,和它的鼠標事件了!

  快來看看去哪兒網的實例吧:http://hotel.qunar.com/city/beijing_city/

---------------------------------------------------------------------------------------------

一、創建地圖

這里我使用的是衛星圖,并且添加了魚骨控件。

var map = new BMap.Map("container",{mapType: BMAP_HYBRID_MAP});      //設置衛星圖為底圖
map.centerAndZoom(new BMap.Point(116.404, 39.915),12); // 初始化地圖,設置中心點坐標和地圖級別。
map.addControl(new BMap.NavigationControl()); //添加魚骨控件
map.addControl(new BMap.MapTypeControl()); //添加地圖類型控件
map.setCurrentCity("北京"); // 設置3D地圖顯示的城市 此項是必須設置的

二、創建多邊形

多邊形的各個點,是需要自己設定的。

我們可以使用坐標拾取工具來找點。http://dev.baidu.com/wiki/static/map/API/tool/getPoint/

比如,創建一個北京二環的多邊形。

//創建經緯度數組
var secRingCenter = new BMap.Point(116.400244,39.931757);
var secRing = [new BMap.Point(116.362875,39.949459),new BMap.Point(116.378972,39.956539),new BMap.Point(116.438764,39.955654),new BMap.Point(116.440488,39.911836),new BMap.Point(116.365175,39.905637)];
//創建多邊形
var secRingPolygon = new BMap.Polygon(secRing, {strokeColor:"blue", strokeWeight:5, strokeOpacity:0.5});
//添加多邊形到地圖上
map.addOverlay(secRingPolygon);

三、給多邊形添加鼠標事件

1、mouseover

當鼠標放到多邊形上時,多邊形的邊變成紅色。

secRingPolygon.addEventListener("mouseover",function(){
secRingPolygon.setStrokeColor("red");
});

2、mouseout

相應地,如果鼠標移出呢,紅色就變回原來的藍色。

secRingPolygon.addEventListener("mouseout",function(){
secRingPolygon.setStrokeColor("blue");
});

3、click

如果點擊多邊形,地圖就放大一級。并且設置一下地圖的中心點。

secRingPolygon.addEventListener("click",function(){
map.zoomIn();
secRingPolygon.setStrokeColor("red");
map.setCenter(secRingCenter);
});

四、創建標簽

這里的標簽有兩個,一是小型的地標標簽。

是對多邊形的一個說明。

圖示:

var secRingLabel2 = new BMap.Label("二環",{offset: new BMap.Size(10,-20), position: secRingCenter});
secRingLabel2.setStyle({"padding": "2px"});
map.addOverlay(secRingLabel2);

第二個就是鼠標放到多邊形上,顯示的商圈說明標簽。

圖示:

var secRingLabel = new BMap.Label("北京市二環,包括了東城區</br>和西城區。著名旅游景點有</br>天安門、故宮、后海、北海</br>公園、景山、南鑼鼓巷等。",{offset: new BMap.Size(-150,0), position: secRingCenter});
secRingLabel.setStyle({"padding": "10px","width": "140px","border": "1px solid #ccff00"});

五、圖示

那么,按照這個方法,大家可以添加許多個商圈。

同樣的,行政區域地圖也可以用這個方法來制作。

本例成品圖:

六、全部源代碼

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>商圈</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>
<body>
<div id="container"></div>
</body>
</html>
<script type="text/javascript">
var map = new BMap.Map("container",{mapType: BMAP_HYBRID_MAP}); //設置衛星圖為底圖
map.centerAndZoom(new BMap.Point(116.325218,39.977441),12); // 初始化地圖,設置中心點坐標和地圖級別。
map.addControl(new BMap.NavigationControl()); //添加魚骨控件
map.addControl(new BMap.MapTypeControl()); //添加地圖類型控件
map.setCurrentCity("北京"); // 設置3D地圖顯示的城市 此項是必須設置的

//創建二環
//創建經緯度數組
var secRingCenter = new BMap.Point(116.400244,39.931757);
var secRing = [new BMap.Point(116.362875,39.949459),new BMap.Point(116.378972,39.956539),new BMap.Point(116.438764,39.955654),new BMap.Point(116.440488,39.911836),new BMap.Point(116.365175,39.905637)];
//創建多邊形
var secRingPolygon = new BMap.Polygon(secRing, {strokeColor:"blue", strokeWeight:5, strokeOpacity:0.5});
//添加多邊形到地圖上
map.addOverlay(secRingPolygon);
//給多邊形添加鼠標事件
secRingPolygon.addEventListener("mouseover",function(){
secRingPolygon.setStrokeColor("red");
map.addOverlay(secRingLabel);
map.panTo(secRingCenter);
});
secRingPolygon.addEventListener("mouseout",function(){
secRingPolygon.setStrokeColor("blue");
map.removeOverlay(secRingLabel);
});
secRingPolygon.addEventListener("click",function(){
map.zoomIn();
secRingPolygon.setStrokeColor("red");
map.setCenter(secRingCenter);
});
//創建標簽
var secRingLabel = new BMap.Label("<b>北京市二環</b>,包括了東城區</br>和西城區。著名旅游景點有</br>天安門、故宮、后海、北海</br>公園、景山、南鑼鼓巷等。",{offset: new BMap.Size(-150,0), position: secRingCenter});
secRingLabel.setStyle({"z-index":"999999", "padding": "10px","width": "140px","border": "1px solid #ccff00"});

var secRingLabel2 = new BMap.Label("二 環",{offset: new BMap.Size(10,-30), position: secRingCenter});
secRingLabel2.setStyle({"line-height": "20px", "text-align": "center", "width": "80px", "height": "29px", "border": "none", "padding": "2px","background": "url(http://jixingjx.com/mapapi/ac.gif) no-repeat",});
map.addOverlay(secRingLabel2);

//創建海淀區
//創建經緯度數組
var haidianCenter = new BMap.Point(116.305958,39.969037);
var haidian = [new BMap.Point(116.352526,39.915599),new BMap.Point(116.278362,39.916485),new BMap.Point(116.252491,39.943042),new BMap.Point(116.234669,39.994358),new BMap.Point(116.281812,40.037239),new BMap.Point(116.281812,40.037239),new BMap.Point(116.386446,39.98684),new BMap.Point(116.389896,39.968263),new BMap.Point(116.336429,39.960299)];
//創建多邊形
var haidianPolygon = new BMap.Polygon(haidian, {strokeColor:"blue", strokeWeight:5, strokeOpacity:0.5});
//添加多邊形到地圖上
map.addOverlay(haidianPolygon);
//給多邊形添加鼠標事件
haidianPolygon.addEventListener("mouseover",function(){
haidianPolygon.setStrokeColor("red");
map.addOverlay(haidianLabel);
map.panTo(haidianCenter);
});
haidianPolygon.addEventListener("mouseout",function(){
haidianPolygon.setStrokeColor("blue");
map.removeOverlay(haidianLabel);
});
haidianPolygon.addEventListener("click",function(){
map.zoomIn();
haidianPolygon.setStrokeColor("red");
map.setCenter(haidianCenter);
});
//創建標簽
var haidianLabel = new BMap.Label("<b>北京市海淀區</b>,是北京市</br>高等學府的聚集地。這里涵</br>括了北京市80%的重點大學</br>。其中清華、北大都是大家</br>耳熟能詳的求學地。",{offset: new BMap.Size(-150,0), position: haidianCenter});
haidianLabel.setStyle({"z-index":"999999", "padding": "10px","width": "140px","border": "1px solid #ccff00"});

var haidianLabel2 = new BMap.Label("海淀區",{offset: new BMap.Size(10,-30), position: haidianCenter});
haidianLabel2.setStyle({"line-height": "20px", "text-align": "center", "width": "80px", "height": "29px", "border": "none", "padding": "2px","background": "url(http://jixingjx.com/mapapi/ac.gif) no-repeat",});
map.addOverlay(haidianLabel2);
</script>

總結

以上是生活随笔為你收集整理的【百度地图API】如何制作商圈地图?行政地图?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。