【发布时间】:2016-09-23 07:19:41
【问题描述】:
谁能知道如何在 android 应用程序上添加 KML 层作为谷歌地图中的叠加层。
KML 不是只能由用户上传的静态 KML 文件。我必须将 KML 上传到我的服务器,然后我想在 google 地图中显示相应的 KML 图层,该图层显示在 android 应用程序本身中。
有什么想法吗?请举一些例子。
我是 KML 的新手。所以请...
【问题讨论】:
标签: android google-maps overlay kml
谁能知道如何在 android 应用程序上添加 KML 层作为谷歌地图中的叠加层。
KML 不是只能由用户上传的静态 KML 文件。我必须将 KML 上传到我的服务器,然后我想在 google 地图中显示相应的 KML 图层,该图层显示在 android 应用程序本身中。
有什么想法吗?请举一些例子。
我是 KML 的新手。所以请...
【问题讨论】:
标签: android google-maps overlay kml
做同样的事情......
1) 在您的资源文件夹下创建一个文件夹(命名为“raw”(做任何你想做的事情。请不要忘记在访问 KLM 文件时更改名称)) 例如:- res/raw
2) 将您的 KML 放在此文件夹中。
3) 在您的活动中,
为图层创建变量
KmlLayer layer;
4) 在您的 onCreate 函数中,只需调用 KML 文件。即创建图层。
layer = new KmlLayer(googleMap, R.raw.landmarkkml, getApplicationContext());
这里有三个参数。
第一个谷歌地图对象。 第二个 KML 文件路径。 第三个应用程序上下文。
5) 现在我们必须使用谷歌地图添加 kmllayer。要做到这一点,
layer.addLayerToMap();
完整代码
package com.yourdomain.kmlongooglemap;
import android.app.Activity;
import android.content.Context;
public class KmlActivity extends Activity {
private GoogleMap googleMap; // Google map object.
KmlLayer layer; //KML object.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kmlactivitylayout);
try {
layer = new KmlLayer(googleMap,R.raw.lanmark, getApplicationContext()); // creating the kml layer
layer.addLayerToMap();// adding kml layer with the **google map**
} catch (Exception e) {
e.printStackTrace();
}
});
}
您可以运行您的应用程序。在这里您可以在 GOOGLE MAP 上看到 KML。
谢谢。
【讨论】:
我尝试创建 KmlLayer 类的变量,但无法识别它。
自动导入不导入 kmllayer 并显示错误。
有我的进口:
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.UiSettings;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
这是我的代码:
KmlLayer kmlLayer = new KmlLayer(mMap, R.raw.salamanca_ceas, getApplicationContext());
kmlLayer.addLayerToMap();
moveCameraToKml(kmlLayer);
怎么了?
【讨论】: