【问题标题】:KML on Google Maps in android application安卓应用程序中谷歌地图上的 KML
【发布时间】:2016-09-23 07:19:41
【问题描述】:

谁能知道如何在 android 应用程序上添加 KML 层作为谷歌地图中的叠加层。

KML 不是只能由用户上传的静态 KML 文件。我必须将 KML 上传到我的服务器,然后我想在 google 地图中显示相应的 KML 图层,该图层显示在 android 应用程序本身中。

有什么想法吗?请举一些例子。

我是 KML 的新手。所以请...

【问题讨论】:

    标签: android google-maps overlay kml


    【解决方案1】:

    做同样的事情......

    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 你应该在 gradle 添加实现 'com.google.maps.android:android-maps-utils:0.5+'
    • 嗨,ahmad,您应该创建一个资源文件夹并在此处提供该路径。这就是我在这里所做的。
    【解决方案2】:

    我尝试创建 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);
    

    怎么了?

    【讨论】:

    • 欢迎来到 SO。如果您有任何问题,我建议您将其作为问题发布,而不是对已有问题的回答。
    猜你喜欢
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    相关资源
    最近更新 更多