2016-09-30 58 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文件。