2012-07-10 21 views
0

我有一個包含1個線串(真實文件有數千個)的簡單KML文件。我在座標方面遇到問題,因爲Google地球會將單行字符串繪製爲兩行。而我轉換到SQL Server Spatial和最終的C#代碼將只繪製一行。處理來自KML文件的LineString - 座標 - 在SQL + C中不良呈現#

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
    <Document> 
    <name>Test.kmz</name> 
    <Style id="styleOSR"> 
     <LineStyle id="lineStyleOSR"> 
     <color>ff0f00ff</color> 
     <width>2</width> 
     </LineStyle> 
    </Style> 
    <Folder> 
     <name>TEST</name> 
     <description> 
     </description> 
     <Folder> 
     <name>TEST</name> 
     <Placemark> 
      <name>OSR 0038</name> 
      <styleUrl>#styleOSR</styleUrl> 
      <LineString> 
      <tessellate>1</tessellate> 
      <altitudeMode>relativeToGround</altitudeMode> 
      <coordinates> 
       68.208,86.306,0 70.926,86.203,0 72.984,86.106,0 75.029,85.98900000000002,0 76.32599999999999,85.917,0 78.40300000000001,85.768,0 81.10299999999999,85.639,0 83.143,85.556,0 84.80200000000001,85.5,0 86.80200000000001,85.41800000000001,0 88.486,85.346,0 89.98,85.29600000000001,0 92.313,85.229,0 94.155,85.155,0 95.839,85.102,0 97.27300000000001,85.02800000000001,0 98.568,84.95999999999999,0 99.444,84.911,0 102.918,84.664,0 103.943,84.57800000000002,0 105.302,84.485,0 106.759,84.369,0 107.709,84.295,0 108.939,84.194,0 109.727,84.11,0 110.959,83.965,0 111.974,83.824,0 112.843,83.67400000000002,0 113.723,83.512,0 114.558,83.321,0 115.258,83.151,0 115.793,83.014,0 116.582,82.74,0 117.171,82.539,0 117.755,82.298,0 119.1,82.087,0 119.984,81.595,0 121.004,81.115,0 121.898,80.643,0 122.639,80.206,0 123.408,79.759,0 125.188,78.99,0 125.679,78.133,0 -29.60900000000001,39.993,0 -29.613,40.033,0 -29.58,40.079,0 -29.588,40.106,0 
      </coordinates> 
      </LineString> 
     </Placemark> 
     </Folder> 
    </Folder> 
    </Document> 
</kml> 

我的問題是,如果我在谷歌地球中加載它,它會在地球上繪製兩條分開的線。這實際上是我想要做的。您可以在下面的圖片上看到兩條紅線,兩條獨立的線條!

enter image description here

但是,當我處理線串,然後呈現從SQL Server幾何形狀的線,我得到一個線

所以解析這一行的座標,並把到SQL Server給我

enter image description here

LINESTRING(68.208 86.306,70.926 86.203,72.984 86.106,75.029 85.989000000000019 76.326 85.917 78.403 85.768 81.103 85.639 83.143 85.556 84.802 85.5 8 6.802 85.418 88.486 85.346 89.98 85.296 92.313 85.229 94.155 85.155 95.839 85.102 97.27300000000001 85.028 98.568 84.96 99.444 84.911 102.918 84.664 103.943 84.578000000000017 105.302 84.485 106.759 84.369 107.709 84.295 108.939 84.194 109.727 84.11 110.959 83.965 ,111.974 83.824,112.843 83.674000000000021,113.723 83.512,114.558 83.321,115.258 83.151,115.793 83.014,116.582 82.74,117.171 82.539,117.755 82.298,119.1 82.087,119.984 81.595,121.004 81.115,121.898 80.643,122.639 80.206,123.408 79.759,125.188 78.99,125.679 78.133,-29.609000000000009 39.993,-29.613 40.033,-29.58 40.079,-29.588 40.106

的問題是在過去4個座標包含這些值

-29.609000000000009 39.993,-29.613 40.033,-29.58 40.079,-29.588 40.106

現在,谷歌地球,似乎知道的座標彼此是不同的,不會呈現一行但它分成兩行。

所以我的問題是如何做到這一點?請記住我有很多這些,我想將它們放在Google Map上作爲自定義圖層 - 這是我的問題 - 我的地圖上有奇怪的線條。

enter image description here

下面是谷歌地球實際上是如何呈現完整的KML文件。

enter image description here

如果有人有興趣看那麼原來的KML文件,你可以從這裏

KML File

這是我的地震遺址在新西蘭顯示在techtonic板得到它地圖。

http://canterburyquakelive.co.nz

歡呼

克里斯

回答

0

谷歌地球呈現在你的榜樣單行

改變海拔高度:

<altitudeMode>clampToGround</altitudeMode> 

relativeToGround

缺少的線段正在經歷全球