1. 程式人生 > >百度地圖實現區域省市周邊覆蓋模糊化(簡單實現)

百度地圖實現區域省市周邊覆蓋模糊化(簡單實現)

使用百度js api2.0實現,簡單實現覆蓋模糊化周邊.實現原理是用兩塊三角形區域覆蓋,取地圖0,0;0,180;180,180;180,0四個角形成周邊覆蓋效果.僅供參考學習,如有不足之處,歡迎大家提供建議.

function getBoundary(address, linecolor, fillcolor, fillopacity, callback, strokeWeight) {
    if (strokeWeight == null) {
        strokeWeight = 1;
    }
    var boundary = new BMap.Boundary();
	var fx = 0;
	var fy = 0;
    boundary.get(address,
    function(rs) { //獲取行政區域
        var count = rs.boundaries.length; //行政區域的點集合有多少個
        for (var i = 0; i < count; i++) {
	    var boundariesArray = rs.boundaries[i];
            var ply = new BMap.Polyline(boundariesArray, {	
                strokeWeight: strokeWeight,
                strokeColor: linecolor,
				strokeStyle: "dashed"
            }); //建立多邊形覆蓋物
            map.addOverlay(ply); //新增覆蓋物
            if (i == 0) {//取第一個座標集,部分省市有多個座標集
                map.setViewport(ply.getPath()); //調整視野
                map.setZoom(map.getZoom() - 2);
                //計算東南西北四個頂點經緯度
                var bs = map.getBounds(); //獲取可視區域
                var north = bs.getNorthEast().lat; //北
                var south = bs.getSouthWest().lat; //南
                var west = bs.getSouthWest().lng; //西
                var east = bs.getNorthEast().lng; //東
                var mapMaxX = east > west ? east: west;
                var mapMinX = east > west ? west: east;
                //計算最大邊界
                var boundaries = boundariesArray.split(";");
                var maxX;
                var maxXIndex = 0;
                var minX;
                var minXIndex = 0;
                var maxY;
                var minY;
                for (var k = 0; k < boundaries.length; k++) {
                    var point = boundaries[k].split(",");
                    if (!maxX) {
                        maxX = point[0];
                        minX = point[0];
                        maxY = point[1];
                        minY = point[1];
                    } else {
                        if (maxX * 1 < point[0] * 1) {
                            maxX = point[0];
                            maxXIndex = k;
                        } else if (minX * 1 > point[0] * 1) {
                            minX = point[0];
                            minXIndex = k;
                        }
                        maxY = maxY * 1 > point[1] * 1 ? maxY: point[1];
                        minY = minY * 1 < point[1] * 1 ? minY: point[1];
                    }
                }
                var start = maxXIndex > minXIndex ? minXIndex: maxXIndex;
                var end = maxXIndex > minXIndex ? maxXIndex: minXIndex;
                var polygonA = [180 + "," + 180 ,0 + "," + 180, 0 + "," + 0];
                var polygonB = [ 0 + "," + 0, 180 + "," + 0,180 + "," + 180];
                var polygonA = polygonA.concat(boundaries.slice(start, end + 1));
                var polygonB = polygonB.concat(boundaries.slice(end, boundaries.length).concat(boundaries.slice(0, start + 1)));
                mapAddPolygon(map, polygonA.join(";"), 0.01, fillcolor, fillopacity, fillcolor);
                mapAddPolygon(map, polygonB.join(";"), 0.01, fillcolor, fillopacity, fillcolor);
            }
            map.setViewport(ply.getPath()); //調整視野
            if (callback) {
                callback();
            }
        }
    });
}
效果展示:


相關推薦

地圖實現區域省市周邊覆蓋模糊(簡單實現)

使用百度js api2.0實現,簡單實現覆蓋模糊化周邊.實現原理是用兩塊三角形區域覆蓋,取地圖0,0;0,180;180,180;180,0四個角形成周邊覆蓋效果.僅供參考學習,如有不足之處,歡迎大家提供建議. function getBoundary(address, l

Android開發-基於地圖API開發仿滴滴出行APP介面的實現

前 言 近年來,由於移動網際網路快速的發展以及基於移動裝置的APP的普及,移動網際網路改變了人們的生活方式。從線上的電子支付到線下的出行,移動網際網路是當今社會人們生活不可或缺的一部分,而線下出行的網約車的出現極大便利了人們的出行,雖然它飽受了很大的爭議,但不可否認的是網約車的出現是

地圖新增marker並獲取InfoWindow裡面的內容,實現marker的增加、刪除、編輯

<!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="

地圖 框出省市邊界

話不多說直接上程式碼: 一、建立地圖 建立地圖物件;設立中心點以及地圖級別。 var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 12); 二、

BaiduMap SDK-地圖的縮放、旋轉和俯視功能實現

目錄 1 簡介 2 程式碼實現 2.1 縮放 2.2 旋轉 2.3 俯視 1 簡介 要實現BaiduMap的平移、縮放、旋轉和俯視功能,需要先開啟對應功能,才可以進行操作, 2 程式碼實現 2.1 縮放 縮放範圍:3.0~19.0

谷歌以圖搜圖 "感知雜湊演算法" C#簡單實現

/// <summary> /// 感知雜湊演算法 /// </summary> public class ImageComparer { /// <summary> /// 獲取圖片的Hashcode /// &

對抗神經網路學習(八)——DeblurGAN實現運動影象的去模糊(tensorflow實現)

一、背景 DeblurGAN是Orest Kupyn等人於17年11月提出的一種模型。前面學習過,GAN可以儲存影像的細節紋理特徵,比如之前做過的SRGAN可以實現影象的超解析度,因此,作者利用這個特點,結合GAN和多元內容損失來構建DeblurGAN,以實現對運動影象的去模糊化。 本試驗的

js使用地圖僅顯示中國區域實現大資料熱點圖

需求:領導需要在年會上展示我們的使用者ip實時資料,做一個網頁版的地圖,僅僅顯示中國區域。 技術分析:echart,hchart等網站都有地圖版的,百度地圖有熱點例項,經過對比,我選用了百度地圖,但是百度地圖無法只顯示中國區域,這個時候就需要我來動動手解決掉最後一關。 應評論的各位想要原始碼

Unity呼叫地圖(可實現模型、UI覆蓋

相信如果在看我這篇部落格的朋友應該都已經將度娘上【Unity】+【百度地圖】下的搜尋結果的都看過一遍了,大概列舉一下: 1、使用百度地圖的Android SDK,將自己寫好的建立地圖View的方法打成jar包,並在Unity中呼叫。 2、使用百度地圖的靜

地圖實現普通地圖、定位、周邊搜尋功能

//--------------一下是普通地圖的實現----------------------------------- 1:開啟百度地圖APi進去,如果沒有註冊過的需要註冊,註冊過的登入進入 2:點選開發——Android地圖SDk——點選獲取金鑰——點選建立應用——

跨域請求(使用jsonp實現跨域請求)地圖api證逆地址解析獲取周邊資訊(pois)

新手程式設計師,新手部落格,如果那裡寫的不好,還請大神們補充,指錯 最近專案裡面需要做一個電子圍欄的功能,我這邊做的就是需要把商戶的地址的經緯度存進資料庫,本來這些從百度地圖API裡面有Demo可以看,但是我是訪問的百度地圖的可以獲取經緯度以及根據經緯度進行周邊檢索的地址

vue結合地圖Api實現周邊配置查詢及根據篩選結果顯示對應座標詳情

在我們平常寫房地產相關專案的時候經常會用到百度地圖,因為這一塊客戶會考慮到房源周圍的配套或者地鐵線路所以在這類專案中就不可以避免的會用到百度地圖,當然這只是其中一種,其他地圖工具也可以,因為我這個專案恰好要求用百度地圖,所以就好好學習了一波百度地圖,大概看了官方文件,發現沒有想象中那麼難,要相信自己可以做出來

js中實現高德地圖坐標經緯度轉地圖坐標

math.sqrt pan poi 結果 mat blog 筆記 百度 說明 1 function tobdMap(x, y) { 2 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; 3

地圖api-查詢周邊

circle htm idt var result 靜態頁 tid cli ng- 利用百度地圖api接口實現周邊配套設施查詢 1. 靜態頁面部分: 1               <div class="row"> 2

地圖API開發一——仿照現有測距實現測量面積功能

poi 樣式 鼠標 mage 移動 block 客戶 mar area   最近做了一個百度地圖API的開發項目,裏面有測量距離和測量面積的功能需求。測量距離百度給出了封裝好的javascript包——BMapLib.DistanceTool,效果如下: 這個效果體驗

vue中實現地圖拖拽地圖定位功能

.com 元素 偏移量 locals 進行 函數 nco 查看 page 效果如果所示,拖動地圖。中間圖標不動,並且自動獲取地圖當前中心點的經緯度。然後就可以用經緯度做其他的操作了。。。首先查看了百度地圖的api。能實現這個功能最貼近的就是marker。marker

使用地圖實現詳細地址自動補全

默認 tro int() div inner 使用 wid type 實現 <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scal

使用地圖實現詳細地址自動補全(補全bug''事件只能綁定到一個上的問題')

item 頁面 tid col border nconf complete ane result     loadMapAutocomplete("suggestId","searchResultPanel"); loadMapAutocomplete("suggest

基於地圖SDK和Elasticsearch GEO查詢的地理圍欄分析系統(3)-前端實現

方便 復制 類型 復制代碼 自動跳轉 rar 窗口 stack delete 轉載自:http://www.cnblogs.com/Auyuer/p/8086975.html MoonLight可視化訂單需求區域分析系統實現功能:   在現實生活中,計算機和互聯網迅速發展,

網頁中利用地圖實現定位省(直轄市)市(區)

ren location .get point asc sca set map char <!doctype html> <head> <meta http-equiv="Content-Type" content="text/h