繁体   English   中英

在地址上显示地图上的位置

Show location on map from address

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想按照他提交的地址显示用户位置。 为此,我正在使用Geocoder。 但我得到以下错误。

10-17 18:21:02.734 1914-1934/com.example.googlemapdemo E/GMPM: getGoogleAppId failed with status: 10
10-17 18:21:02.735 1914-1934/com.example.googlemapdemo E/GMPM: Uploading is not possible. App measurement disabled

通过执行所有步骤,我已经获得了Google api密钥。 这是我的代码

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
}

MainActivity.java

Geocoder geocoder = new Geocoder(getApplicationContext());
String result=null;

try {
    List addressList = geocoder.getFromLocationName(address.getText().toString(),1);

    if(addressList!=null && addressList.size() > 0) {
        Address address = (Address) addressList.get(0);
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        String provider = locationManager.getBestProvider(criteria,true);

        double lat = address.getLatitude();
        double longti = address.getLongitude();

        Log.e("lat..long","lat...long"+lat+"....."+longti);
        Intent intent = new Intent(MainActivity.this, MapsActivity.class);
        intent.putExtra("Lat",lat);
        intent.putExtra("Long",longti);
        startActivity(intent);
    }
} catch (IOException e) {
    e.printStackTrace();
}

map.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:map="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/map"
      tools:context="com.example.googlemapdemo.MapsActivity"
      android:name="com.google.android.gms.maps.SupportMapFragment"/>

MapActivity

package com.example.googlemapdemo;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

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.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;
    private double lat, longt;

    @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.
        lat = getIntent().getIntExtra("Lat",0);
        longt = getIntent().getIntExtra("Long",0);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    /**
     * Manipulates the map once available. This callback is triggered when the map is ready to be
     * used. This is where we can add markers or lines, add listeners or move the camera. In this
     * case, we just add a marker near Sydney, Australia. If Google Play services is not installed
     * on the device, the user will be prompted to install it inside the SupportMapFragment. This
     * method will only be triggered once the user has installed Google Play services and returned
     * to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(lat,longt);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
}

我还添加了所有permisions和api键以进行说明

AndroidMenifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.googlemapdemo" >

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <permission
        android:name="package.name.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <uses-library android:name="com.google.android.maps" />

    <uses-permission android:name="package.name.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!--
             The API key for Google Maps-based APIs is defined as a string resource.
             (See the file "res/values/google_maps_api.xml").
             Note that the API key is linked to the encryption key used to sign the APK.
             You need a different API key for each encryption key, including the release key that is used to
             sign the APK for publishing.
             You can define the keys for the debug and release targets in src/debug/ and src/release/. 
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MapsActivity"
            android:label="@string/title_activity_maps" >
        </activity>
    </application>
</manifest>
3 个回复

您需要在开发人员控制台的密钥下添加包名称和SHA证书指纹。 你做完了吗?

您需要添加地图密钥以在您的应用程序上显示googlemap。我在清单文件中没有看到它,我仅看到使用GeoCoder的密钥

添加您的Google地图密钥后,请尝试。 示例如下所示

<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />

试试这个,它可以帮助您:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = null;
try {
    addresses = geocoder.getFromLocationName("Location String", 1);
} catch (IOException e) {
    e.printStackTrace();
}
Address address = addresses.get(0);
if(addresses.size() > 0) {
    double latitude = addresses.get(0).getLatitude();
    double longitude = addresses.get(0).getLongitude();
    LatLng latLng = new LatLng(latitude, longitude);
    mMap.addMarker(new MarkerOptions().position(latLng));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    mMap.animateCamera(CameraUpdateFactory.zoomTo(10));
}
1 在地图视图上显示地址

我有两个课 Contactdetailfragment从联系人列表中获取地址。 ContactDetailFragment.java MainActivity在地图上显示地址 MainActivity.java 如何在地图上显示ContactAddressQue ...

2 在地图上显示位置[关闭]

我的目标是在地图上显示给定的位置或位置(例如GoogleMaps)。 我知道HTML5中有Geolocation,但这仅显示了用户的当前位置。 我考虑过Google地图的iframe,然后将带有jQuery的给定位置传递给iframe的搜索框。 有没有更好的方法来做我想做的事? ...

3 如何显示给定的地址不在谷歌地图上

我有两个输入框: 现在我想当用户写这个时, 有什么办法可以告诉用户给定的地址不在Google地图上? 任何简单的方法,我正在使用EasyGoogleMap.class.php类。 请建议我任何jquery方法来显示消息 ...

4 如何在单个地图上显示多个地址

我有一个Lat和Longs列表,我想在地图上显示为点/标记。 我该怎么做呢。 我已经能够使用geocodingParams选项执行一个地址,但无法看到如何使用倍数执行此操作。 我将有一个地址列表,我想地理编码和显示或我可以将地址转换为lat / long然后显示。 你可以告诉我,我对此很 ...

5 如何在Google地图上显示搜索地址?

我正在goole地图上工作,我在Google地图上的搜索栏上添加了以下内容,并获取了特定搜索地址的坐标。 现在,我想在选择位置后也在地图上显示它。 请看我的代码。 -(void)searchBarTextDidBeginEditing:(UISearchBar *)searchB ...

7 在Google地图上显示IP位置

当用户登录到django应用程序时,我试图从IP地址获取用户位置。 但不知道该怎么做。 我为此使用GeoIP。 我的问题是如何为此编写视图以及如何在Google地图上显示IP的位置。 ...

8 让用户在地图上保存和显示位置

我有一个网站,我正在尝试实现此目的: 一些用户(我们称他们为商店老板)会放置图钉(以指示商店)并描述那里的东西。 他们可以保存任意数量的引脚。 其他用户(客户)将搜索商店。 搜索将仅包含位置名称。 例如,如果客户搜索“法国巴黎香榭丽舍大街”,则系统应向他显示香 ...

10 关于按街道名称在地图上显示位置的咨询

我如何使用android和java通过街道名称在地图上显示位置? 例如:我将输入程序“ street,city”,然后在地图上获取位置 我有这个样本: 如何更改此代码以插入街道和城市? 我试试这个: 类似的东西: Uri.parse("geo:empire state ...

2012-10-27 12:04:48 2 1232   android
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM