1. 程式人生 > >百度地圖開發總結----3.判斷一個點是否在一片區域內

百度地圖開發總結----3.判斷一個點是否在一片區域內

主要用到了BMapLib.GeoUtils.isPointInPolygon(point, apolygon)這個函式,第一個引數為百度座標點物件,new BMap.Point(x,y),

第二個引數為覆蓋物物件,物件,物件!!!(就在剛才寫demo的時候還傳錯了,傳的座標陣列,結果總是返回false,⊙﹏⊙b汗)。

程式碼:

<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>

//想用這個方法需要引以上這個js檔案

<div id="content">

  </div>
  <script type="text/javascript">
var mp = new BMap.Map('content');
     mp.enableScrollWheelZoom();//地圖隨滑鼠滑輪滾動放大縮小的功能
var mypoint=new BMap.Point(117.339937,31.870068);//定義一個座標物件
//初始化地圖的中心位置
     mp.centerAndZoom(mypoint, 14);   //第二個引數代表地圖的放大級數,目前是1-18 
var opt1 = { type: BMAP_NAVIGATION_CONTROL_LARGE }     //導航控制元件樣式
     mp.addControl(new BMap.NavigationControl(opt1));
     mp.addControl(new BMap.OverviewMapControl());         //略縮圖控制元件
     mp.addControl(new BMap.ScaleControl({ offset: new BMap.Size(75, 500) }));
     //比例尺控制元件
     mp.addControl(new BMap.MapTypeControl());     
mp.clearOverlays();//清除地圖上的覆蓋物
var apolygon_points=new Array();
apolygon_points.push(new BMap.Point(117.338937,31.880068));
apolygon_points.push(new BMap.Point(117.347992,31.857621));
apolygon_points.push(new BMap.Point(117.314072,31.856394));
var apolygon = new BMap.Polygon(apolygon_points, {
                             strokeColor: "red",
                             strokeWeight: 2,
                             strokeOpacity: 0.5,
                             fillOpacity: 0.4
                         });
mp.addOverlay(apolygon);
var opt={position:new BMap.Point(117.338937,31.880068),offset: new BMap.Size(0, 0)};
var lname="第九區"
var label = new BMap.Label(lname, opt);
mp.addOverlay(label);
var msg="";
var pt=new BMap.Point(117.338937,31.860068);
mp.addOverlay(new BMap.Marker(pt));
if (BMapLib.GeoUtils.isPointInPolygon(pt, apolygon)) {//如果點在區域內,返回true
            mp.addOverlay(new BMap.Marker(pt));
            msg = "在" + lname + "區域內";   
     }
else{
            mp.addOverlay(new BMap.Marker(pt));
            msg = "在" + lname + "區域外";   
}
var label2=new BMap.Label(msg,{position:pt,offset:new BMap.Size(0,0)});
mp.addOverlay(label2);
</script>

效果:


相關推薦

地圖開發總結----3.判斷一個是否在區域

主要用到了BMapLib.GeoUtils.isPointInPolygon(point, apolygon)這個函式,第一個引數為百度座標點物件,new BMap.Point(x,y), 第二個引數為覆蓋物物件,物件,物件!!!(就在剛才寫demo的時候還傳錯了,傳的座標

判斷一個是否在某個區域,高德,騰訊都能用。(php版)

<?php // *** 配置檔案(表示區域的三維陣列)其內的點,必須按順時針方向依次給出! $area = array( // 天通苑店 0 => array( array('x'=>116.38295, 'y'=>40.094

判斷一個是否在某個區域(多邊形)

背景:     比如滴滴會根據乘客所在的不同區域,給出不同的價格。市區堵一點,那麼價格也高點。獲取服務範圍只規定在某個範圍內 原理:     求解從該點向右發出的水平線射線與多邊形各邊的交點,當交點數為奇數,則在內部。     不過要注意幾種特殊情況:1、點在

Android判斷一個是否在矩形區域

ole main art int 拖拽 div help mov @override 個人遇到的問題判斷按鈕的點擊事件還是滑動事件 private boolean button1Down = false; private boolean button2D

地圖API(3):判斷地圖上的是否在 圓形 多邊形 區域

GeoUtils.js 效果圖 原始碼 Tips 要注意Point和Circle 都必須是:BMap.Point和BMap.Bounds物件 此案例只展示了多邊形和

[android] 地圖開發 ().申請AK顯示地圖及解決顯示空白網格問題

定義 gps 官方 應用程序 2.x lns settings sap xmlns 近期做android百度地圖,可是使用baidumapapi_v2_3_1.jar和libBaiduMapSDK_v2_3_1.so顯示百度地圖時總是遇到問題——僅僅顯示

Android studio 地圖開發(2)地圖定位

gcj02 settings tick all adding ext tope wid erro Android studio 百度地圖開發(2)地圖定位 email:[email protected]/* */ 開發環境:win7 64位

android的地圖開發

one rst dir 還要 遠程服務 存儲 返回 src copy 1,註冊百度開發者賬號 2,申請key ,註意開發版SH和發布版的SH 獲取開發版SHA1: 輸入命令:keytool -list -v -keystore debug.keystore,回車輸入密鑰

android的地圖開發(二) 定位

頻率 update 殺死 一次 ddr animate 語義 pri des 參考:http://blog.csdn.net/mr_wzc/article/details/51590485 第一步,初始化LocationClient類 //獲取地圖控件引用

調用地圖開發平臺的JavascriptAPI實現將市縣位置轉換成坐標

json 2.7 func 技術分享 真的 工具 深圳市 tar () 最近的項目要做的地圖比較多,有的還比較復雜,而地圖用到的坐標,上網找json文件更是良莠不齊的。真是讓人傷腦筋,後來突然想到了百度地圖開發平臺,沒想到真的有對應的API哦,謝天謝地!!!下面說一下完整的

地圖之九如何在一個地圖上顯示多條導航路線

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android地圖開發定位和路線導航

在寫之前要先加入百度地圖sdk的jar包從百度地圖開發者官網上就能下載 百度地圖sdk下載 官網(可翻牆選擇):http://developer.android.com/sdk/index.html 不可翻牆選擇:http://www.androiddevtools.cn/ 而其中用

地圖開發之——地圖鷹眼軌跡管理臺DEMO-v3部署到伺服器上

百度地圖開發官方下載口:https://github.com/baidu-openmap-trace/web-demo-v3 第一:部署準備 搭建NPM和FIS3的環境 1、安裝node.js:https://nodejs.org/en/ 點選版本下載,然後就安裝

地圖開發(九)地圖覆蓋物標註頭像

效果:  只是簡單的在地圖上顯示覆蓋物標註的話是很簡單的,就兩行程式碼: //建立marker MarkerOptions ooA = new MarkerOptions().position("這裡是顯示的座標位置").icon("這個是顯示

地圖開發(八)輸入框搜尋根據關鍵字檢索出現列表

 看圖  效果就是輸入自動提示熱詞,點選熱詞賦值給輸入框 介面卡程式碼 package com.example.administrator.baidumap1; /* * @Comment : * @Created :2018/10/26 14:11 *

地圖開發(七)方向感測器指向方向--指南針

效果圖: 用到的小圖,自行下載: 原理就是利用方向感測判斷機頭方向傳值給定位: 方向感測程式碼: import android.content.Context; import android.hardware.Sensor; import android.hardware

地圖開發(六)檢索定位附近街道資訊並展示

效果:  主要程式碼就是根據經緯度獲取經緯度附近周邊的資訊 /** * 根據經緯度獲取定位周邊街道資訊 * */ private void setPopupTipsInfo(LatLng latLng) { //設定反地理編

地圖開發(五)個性化地圖

 效果圖: 步驟: 1:在http://lbsyun.baidu.com/customv2/index.html裡面編輯自己想要的個性化地圖 2:編輯完成之後下載下來,是一個json格式的檔案 3:把json檔案放入到自己的as專案裡面 準備工作就已經做完了

地圖開發(四)定位以及選按鈕返回當前定位

 效果圖:  定位就分為三部分: 1:配置定位SDK引數 2:監聽定位返回結果 3:開啟定位 程式碼: 返回當前定位的程式碼,在按鈕的點選事件裡面呼叫 //把定位點再次顯現出來 MapStatusUpdate mapStatusUpdate

地圖開發(三)隱藏Logo/比例尺/縮放控制元件/放大縮小方法

隱藏百度地圖的Logo: View child = mMapView.getChildAt(1); if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {