原创 C++中值傳遞(pass-by-value)和引用傳遞(pass-by-reference)

1.pass-by-value的情況: 缺省情況C++以pass-by-value(繼承C的方式)傳遞對象至(或來自)函數。函數參數都是以實際參數的復件爲初值,調用端所獲得的也是函數返回值的一個復件,復件由對象的拷貝構造函數產出,可能使p

原创 shp系列(七)——利用C++進行Shx文件的寫(創建)

之前介紹了Shp文件和Dbf的寫(創建),最後來介紹一下Shx文件的寫(創建)。Shx文件是三者之中最簡單的一個,原因有兩個:第一是Shx文件的頭文件與Shp文件的頭文件幾乎一樣(除了FileLength);第二是Shx文件的主體只有兩個

原创 shp系列(五)——利用C++進行shp文件的寫(創建)

之前介紹了shp文件、dbf文件和shx文件的的讀取,接下來將分別介紹它們的創建過程。一般來說,讀和寫的一一對應的,寫出的文件就是爲了保存數據供以後讀取的。寫的文件要符合shapefile的標準。之前讀取的時候使用的函數是fread,寫的

原创 shp系列(六)——利用C++進行Dbf文件的寫(創建)

上一篇介紹了shp文件的創建,接下來介紹dbf的創建。 推薦結合讀取dbf的博客一起看! 推薦結合讀取dbf的博客一起看! 推薦結合讀取dbf的博客一起看!   1.Dbf頭文件的創建 Dbf頭文件的結構如下: 記錄項數組說明: 字段

原创 shp系列(四)——利用C++進行Shx文件的讀(打開)

1.shx文件的基本情況 shx文件又叫索引文件,主要包含座標文件的索引信息,文件中每個記錄包含對應的座標文件記錄距離座標文件的初始位置的偏移量。通過索引文件可以很方便地在座標文件中定位到指定目標的座標信息。   2.shx文件的組成 索

原创 shp系列(二)——利用C++進行shp文件的讀(打開)

1.各數據類型及其字節數 BYTE 1;       char 1;    short 2;      int 4;    double 8; 2.位序big和little及其轉換 對於位序是big的數據我們在讀取時要小心。通常,數據的位

原创 shp系列(三)——利用C++進行DBF文件的讀(打開)

1.DBF文件要點 DBF文件又叫屬性文件,也叫dBASE文件,文件後綴是.dbf,實際上ArcGIS打開後的屬性表就是DBF的信息。DBF文件遵循以下幾個條件: 每個要素在表中必須要包含一個與之相對應的記錄。 記錄的順序必需與要素在主文

原创 利用C++進行shp文件的讀(打開)與寫(創建)(一)

博客背景和目的 最近在用C++寫一個底層的東西,需要讀取和創建shp文件。雖然接觸shp文件已經幾年了,但是對於shp文件內到底包含什麼東西一直是一知半解。以前使用shp文件都是利用軟件(如ArcGIS)直接打開,保存;創建文件則需要專門

原创 (四)建築物多邊形化簡系統——“去尾巴”和分割複雜多邊形

問題說明 實際操作中,發現有的多邊形存在“尾巴”或者很細的部分。“尾巴”細長,明顯不是有效建築物區域,特點就是區域面積小,看起來細長,附着於大面積多邊形外測或者連接兩個多邊形。 需要去除尾巴或者分割多邊形,爲後面擬合多邊形做準備。    

原创 (二)建築物多邊形化簡系列——多邊形點數化簡

1.目的 實驗發現,一個多邊形由多個環,每個環的點數數量都比較大,這直接導致程序處理速度非常慢。爲了簡化圖形,加快程序運行速度,爲方便後期擬合建築物,打算對建築物原始數據進行化簡。 2.做法 化簡的內容是去除部分建築物多邊形的點,採取保留

原创 (一)建築物多邊形化簡系列——去除噪點環

由於本人最近在進行建築物數據處理的項目,遇到了較多的問題,同時也收穫了很多知識。所有打算寫一個建築物處理的系列博客。 要處理建築物多邊形,首先得理解結構關係,這是所有實現處理的基礎。建築物多邊形是由一條條封閉的環(線狀)組成,環是由一組首

原创 (三)建築物多邊形化簡系列——最小外接矩形的獲取

最小外接矩形問題是在給出一個多邊形(或一羣點),求出面積最小且外接多邊形的矩形的問題。這個問題看起來並不難,但是具體實現並不簡單。除了調用現有的公開庫之外,這裏給出一種簡單且易理解的方法。   算法的主要思想是: (1)先實現多邊形的簡單

原创 (二)建築物多邊形化簡系列——去除冗餘點

製圖綜合和建築物數據處理等都涉及到建築物多邊形的化簡。製圖綜合中,由於比例尺的變小,建築物在小比例尺地圖上所佔面積變小,這意味着建築物圖形的形狀精度也有一定的損失,爲了更好地表示原有建築物的特徵(面積、圖形和方向),需要對建築物多邊形進行