2015-01-15 186 views
1

我一直在到處研究,還沒有找到如何做到這一點的具體例子。我想知道如何向Google發送一個HTTP請求,以將我當前位置周圍的地方的數據帶回LatLng中?然後用JSON解析這些數據然後顯示在我的地圖上。如果這個問題看起來很愚蠢,我對android開發很感興趣。我已經通過谷歌文檔,看着這一點,但它周圍:(使用我的當前位置將谷歌地圖實施到谷歌地圖

我MainActivity.Java文件我不能讓我的頭:

package com.example.mapapp; 

import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.LatLng; 


public class MainActivity extends FragmentActivity implements OnMyLocationChangeListener { 

    GoogleMap map; 
    LatLng myPosition; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
     map.setMyLocationEnabled(true); 

     LocationManager locationmanager = (LocationManager) getSystemService(LOCATION_SERVICE); 

     Criteria criteria = new Criteria(); 

     String provider = locationmanager.getBestProvider(criteria, true); 
     Location location = locationmanager.getLastKnownLocation(provider); 

     if(location!=null){ 
      double latitude = location.getLatitude(); 
      double longitude = location.getLongitude(); 
      myPosition = new LatLng(latitude, longitude); 

     } 
    } 

    @Override 
    public void onMyLocationChange(Location location) { 
     // TODO Auto-generated method stub 

    } 

} 

我Manifest.xml文件:

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

    <uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="21" /> 
    <permission 
    android:protectionLevel="signature" 
    android:name="com.example.mapapp.permission.MAPS_RECEIVE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <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"/> 
    <uses-feature android:required="true" android:glEsVersion="0x00020000"/> 

    <application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <uses-library 
     android:name="com.google.android.maps"/> 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

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

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

    </application> 

</manifest> 

我Layout.xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.mapapp.MainActivity" > 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="250dp" 
     /> 

    <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</RelativeLayout> 

回答

0

如果您想顯示附近的地點,則需要使用Google Places API。

您可以閱讀this tutorial,瞭解如何在Google Developer Console中設置API項目。

此外,您可以閱讀this series of tutorials關於如何顯示附近的地方。