該庫基於.NET Core實現,已開源在GitHub上,地址如下:
實現[GeoSOT][1]球面經緯度剖分Tile的編碼/解碼算法.
功能特性:
1 支持從度分秒經緯度構建剖分塊對象;
2 支持從SOT一維編碼構建剖分塊對象;
3 支持剖分塊特征角點坐標計算;
4 支持剖分塊范圍四至計算;
5 支持剖分塊層、行、列號計算
示例 1: 從DMS經緯度構建Tile對象
var dms = "39° 54' 37.0098\" N, 116° 18' 54.8198\" E";
var _tile = new Tile(dms, 15);
Console.WriteLine(_tile.ToString());
// print G001310322-230230
示例 2: 從編碼構建Tile對象
var 1dCode = "G001110221-021123-021123.02203010012";
var _tile = new Tile(1dCode);
Console.WriteLine(_tile.ToString());
// print "G001110221-021123-021123.02203010012"
示例 3: 特征角點坐標獲取
var dms = "39° 54' 37.0098\" N, 116° 18' 54.8198\" E";
var _tile = new Tile(dms, 15);
Console.WriteLine(_tile.CornerLng);
Console.WriteLine(_tile.CornerLat);
// print 116.3 39.9
示例 4: 范圍四至計算
var dms = "39° 54' 37.0098\" N, 116° 18' 54.8198\" E";
var _tile = new Tile(dms, 15);
Console.WriteLine(_tile.GetBbox().ToString());
// print 116.3 39.9 116.316667 39.916667
示例 5: 層、行、列號計算
var dms = "39° 54' 37.0098\" N, 116° 18' 54.8198\" E";
var _tile = new Tile(dms, 15);
Console.WriteLine(_tile.Level);
Console.WriteLine(_tile.X);
Console.WriteLine(_tile.Y);
// print 15 7442 2550
[1]: 論文引用:GeoSOT:基於2^n及整型一維數組的全球經緯度剖分網格(Geo-graphical coordinates subdividing grid with one dimension integral coding on 2n-Tree)