判斷經緯度點,路線,圍欄之間的關係

2021-09-29 10:33:43 字數 2013 閱讀 4293

忙中偷閒,給大家寫乙個api介面,用來判斷經緯度點與路線,圍欄之間的關係。

由於介面資源有限,所以對請求頻率做了限制,不提供免費商用,謝謝!

api.public.jointcontrols.cn:58001/gisapi/gisanalysis

請求方式post,返回資料格式:json

自測試截圖(測試工具postman):

傳入引數:

lonlat1:經緯度點1,經度在前,緯度在後,用英文半形逗號隔開

lonlat2:經緯度點2,經度在前,緯度在後,用英文半形逗號隔開

faction:getpointdistance(方法名)

返回結果:

result: 介面狀態碼;200成功,105失敗,102,方法名不存在

message:介面狀態資訊(可忽略)

fobject:介面返回資料集

distance:表示兩點之間的距離,單位是公尺。

該介面可以用來判斷定位裝置當前是否在某條路線上,這個實際用處比較廣泛,判斷車輛道路超速,車輛進入受限道路等等

自測試截圖:

傳入引數:

lonlat:經緯度點;經度在前,緯度在後,用英文半形逗號隔開

line:路線的經緯度點集合;經度在前,緯度在後,用英文半形逗號隔開;每個經緯度點之間用英文半形逗號隔開

buffer:道路的寬度

faction:getpointontheline(方法名)

返回結果:

result: 介面狀態碼;200成功,105失敗,102,方法名不存在

message:介面狀態資訊(可忽略)

fobject:介面返回資料集

status:true表示車輛在道路上,false車輛不在道路上

該介面是gis分析中最常用的介面,在實際生產過程中,車輛進入某個區域並給出提示,就比如幹線運輸,車輛是否到達目的地,是否離開出發點等等

這裡的圍欄是多邊形圍欄,而且需要組成乙個閉合的圍欄,即area第乙個點與最後乙個點是乙個點。如果是圓形圍欄,則只需要判斷車輛與中心點之間的距離與圓形圍欄進行比較就可以了,使用2.就可以實現。

自測試截圖:

傳入引數:

lonlat:經緯度點;經度在前,緯度在後,用英文半形逗號隔開

area:圍欄的經緯度點集合;經度在前,緯度在後,用英文半形逗號隔開;每個經緯度點之間用英文半形逗號隔開

faction:getpointontheline(方法名)

返回結果:

result: 介面狀態碼;200成功,105失敗,102,方法名不存在

message:介面狀態資訊(可忽略)

fobject:介面返回資料集

status:true表示車輛在圍欄內,false車輛不在圍欄內

自測試截圖:

傳入引數:

line:路線的經緯度點集合;經度在前,緯度在後,用英文半形逗號隔開;每個經緯度點之間用英文半形逗號隔開

faction:getlinelength(方法名)

返回結果:

result: 介面狀態碼;200成功,105失敗,102,方法名不存在

message:介面狀態資訊(可忽略)

fobject:介面返回資料集

length:路線長度,單位公尺

以上是幾個基礎用法,通過這些基礎用法可以進行拓展,如:獲取路線是否經過某個電子圍欄,兩條路線是否有交叉,電子圍欄是否有交叉等等。

合理應用這些gis分析方法,給客戶更加全面豐富的報表輸出,使得我們的平台更有競爭力!

根據經緯度判斷車輛是否進度電子圍欄

public class gps public boolean isnetvalid public string getgpscode public gps public boolean setbygpscode string gpscode string temp gpscode.split if...

計算兩點經緯度之間的演算法

private static final double earth radius 6378.137 private static double rad double d 得出兩個經緯度之間的距離 param r longitude param r latitude param n longitude...

經緯度一點與經緯度兩點之間測最短距離

如果有數學基礎,看到這個圖就應該懂了。首先,拿到兩個經緯度計算x,y軸各自的差值 36.679430 36.633990 xn 116.952210 117.054860 yn 拿到x,y軸各自的差值之後,計算向下移動幾個點位。平均分就可以,xn 4,yn 4 我只取3個中間點,所除以4,如果想要精...