2016-09-30 60 views
1

我試圖在地圖上添加一層2000個位置。代碼應該可以工作,它會顯示添加KML圖層的try塊,但是沒有任何內容顯示在地圖上。未在Android應用中添加KML圖層

在進一步的檢查,我相信這必須與KML文件,這是我在谷歌地圖中產生的問題。這是因爲一個例子KML文件我下載了完美的作品,只是不是我所產生的呢?

公共類MapsActivity擴展FragmentActivity實現OnMapReadyCallback {

private GoogleMap mMap; 
private boolean gotLocation = false; 
GPSTracker gps; 
double latitude; 
double longitude; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 

    Intent i = getIntent(); 

    gps = new GPSTracker(this); 
    latitude = gps.getLatitude(); 
    longitude = gps.getLongitude(); 
    Toast.makeText(this, "WE HAVE GOT YOUR LOCATION: LATITUDE = " + latitude + "LONGITUDE = " + longitude, Toast.LENGTH_LONG).show(); 




} 

@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 
    mMap.setMyLocationEnabled(true); 
    mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("Current Position")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(latitude, longitude))); 

    mMap.animateCamera(CameraUpdateFactory.zoomTo(10));; 

    try { 
     KmlLayer layer = new KmlLayer(mMap, R.raw.vha, getApplicationContext()); 
     layer.addLayerToMap(); 
     Log.v("Maps", "We should have added layer"); 
    } catch (XmlPullParserException e) { 
     e.printStackTrace(); 
     Log.v("Maps", "Pull parser exception"); 

    } catch (IOException e) { 
     e.printStackTrace(); 
     Log.v("Maps", "IO exception"); 

    } 

} 

}

<?xml version='1.0' encoding='UTF-8'?> 
<kml xmlns='http://www.opengis.net/kml/2.2'> 
<Document> 
    <name>VHA</name> 
    <description><![CDATA[]]></description> 
    <Folder> 
     <name>VHA</name> 
     <Placemark> 
      <name>Aberdeen VA Clinic</name> 
      <description><![CDATA[Address: 2301 8th Ave. NE, Suite 225   Aberdeen, SD 57401<br>State: SD<br>Phone: 605-229-3500<br>Zip: 57401]]></description> 
      <styleUrl>#icon-1899-0288D1</styleUrl> 
      <ExtendedData> 
       <Data name='Address'> 
        <value>2301 8th Ave. NE, Suite 225   Aberdeen, SD 57401</value> 
       </Data> 
       <Data name='State'> 
        <value>SD</value> 
       </Data> 
       <Data name='Phone'> 
        <value>605-229-3500</value> 
       </Data> 
       <Data name='Zip'> 
        <value>57401</value> 
       </Data> 
      </ExtendedData> 
      <address>2301 8th Ave. NE, Suite 225   Aberdeen, SD 57401</address> 
     </Placemark>} 
+0

上futher驗貨OK,似乎不管我怎麼導出爲KML文件從谷歌地圖,當我再嘗試導入剛纔導出KML文件,我得到這個錯誤:該文件包含無效或不支持的數據,或文件太大而無法解析。 –

回答

1

確定爲任何其他人曾經有這個問題,谷歌可以從地址的CSV文件創建KML文件,但它無法讀取它。您必須首先將csv文件中的地址轉換爲lat/long,然後創建kml文件。