2016-07-23 2 views
0

私はテヘランの自転車用のAndroidアプリケーションを作りたいと思っています。そのために私はこのようなマップ上の特定および静的ロケーションを表示する必要があります。Google Mapでいくつかの特定の場所を設定するには?

google map locations example

私はGitHubのからいくつかのライブラリを試みたが、うまくいきませんでした。余分な場所を追加しました(double latitude1 = 35.747394; double longitude1 = 51.267577;)しかし、位置マークは地図に表示されません。

誰かが私を助けてくれたら嬉しいです。

これは私のコードです:

MainActivity.java

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.net.Uri; 
import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.CameraPosition; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

import com.google.android.gms.maps.MapFragment; 
import com.playpersia.bicyclemap.R; 

import com.google.android.gms.maps.GoogleMap; 
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 { 

    double latitude1 = 35.747394; 
    double longitude1 = 51.267577; 
    // Google Map 
    private GoogleMap googleMap; 

    /** 
    * Called when the activity is first created. 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_map); 

     Uri gmmIntentUri = Uri.parse("geo:35.694677, 51.394871"); 
     Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
     mapIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //***Change Here*** 
     mapIntent.setPackage("com.google.android.apps.maps"); 

     if (mapIntent.resolveActivity(getPackageManager()) != null) { 
      startActivity(mapIntent); 
      finish(); 

     } 

     try { 

      initilizeMap(); 


      MarkerOptions markerOptions1 = new MarkerOptions().position(
       new LatLng(latitude1, longitude1)).title("بوستان جوانمردان"); 

      googleMap.addMarker(markerOptions1); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @ 
    Override 
    protected void onResume() { 
     super.onResume(); 
     initilizeMap(); 
    } 

    private void initilizeMap() { 

     if (googleMap == null) { 
      SupportMapFragment mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
       R.id.map)); 

      if (googleMap != null) { 
       Toast.makeText(getApplicationContext(), "خطا", Toast.LENGTH_LONG).show(); 
      } 


     } 

    } 

} 
+0

これはまさに問題ですか?いくつかのマーカーを追加することはできませんか?または地図が表示されていませんか?あなたのコードを見れば、ただ1つのマーカーを追加していることが分かります –

+0

@youzkingはい私はちょうど1つの場所を追加しましたが、その1つの場所を表示していません – Hadis

+0

マーカーを追加するだけで十分ですあなたのマーカーは追加されても表示されません。マーカーを追加した後に追加してください: 'LatLng latLng = new LatLng(latitude1、longitude1); CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng、10); map.animateCamera(cameraUpdate); ' –

答えて

0

Google Places APIのドキュメントを確認してください。これにより、施設、重要な注目点、地理的な場所など、さまざまなカテゴリの場所情報を照会することができます。近接またはテキスト文字列のいずれかで場所を検索できます。

Nearby Searchを使用すると、指定した地域内の場所を検索できます。キーワードを指定するか、検索する場所のタイプを指定することで、検索リクエストを絞り込むことができます。ここにはlist of supported typesがあります。

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&type=transit_station&key=YOUR_API_KEY 

チェックこれらの関連リンクとtutorial

Sample HTTP URL of the following form:

https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

where output may be either of the following values:

  • json (recommended) indicates output in JavaScript Object Notation (JSON)
  • xml indicates output as XML

次の例では、オーストラリアのシドニーでのポイントの半径500m内の型「transit_station」の場所のための検索要求である

希望します。

+0

私はチュートリアルのリンクを使用して、私の問題を解決しました ありがとう – Hadis

0

私はあなたがあなたのログの猫を読めばitself.Youは間違いを発見しただろうあなたのアプリで地図を表示しようとしている願っています。 googleMap変数が初期化されていません。したがって、マーカを追加すると、nullポインタ例外がスローされます。 getMapAsyncコールバックを使用してgoogleMap変数を初期化してからマーカーを追加する必要があります。地図が表示され、マーカーが追加されていない場合は、これが機能します。マップがAPIキーの問題を表示していない場合。それを修正して意図のコードを削除し、これを試してください。

+0

apiキーを修正しました。これで私にこのエラーが表示されます: java.lang.NullPointerException:仮想メソッド 'com.google.androidを呼び出しようとしています。 gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model。07-24 21:40:04.931 19095-19095/com.playpersia.bicyclemap – Hadis

関連する問題