গুগল ম্যাপ এপিআই ভি 2 এর জন্য আমি কীভাবে ডিফল্ট অবস্থান এবং জুম স্তর সেট করব?


91

যখন আমার মানচিত্রটি দেখায় এটি সর্বদা একটি নির্দিষ্ট স্থানে (আফ্রিকার কাছে) শুরু হয়।

তারপরে, আমি মানচিত্রে যে অবস্থানটি চাইছি তার কেন্দ্রে নিম্নলিখিত কোডটি ব্যবহার করি।

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));

আমার প্রশ্ন হ'ল আমি কি মানচিত্র প্রদর্শনের আগে একটি ডিফল্ট অবস্থান এবং জুম স্তর নির্ধারণ করতে পারি?

কারণ আমি চাই না আমার ব্যবহারকারীরা শুরুতে অ্যানিমেশনটি দেখতে পাবে।

ধন্যবাদ


এই কুনশন সাহায্য করেছে .... এমনকি যদি অবস্থানটি সক্ষম না করা হয় ... অ্যানিমেট ক্যামেরায় আফ্রিকার কোথাও পয়েন্ট করা হয়েছে ... উইয়ার! ... moveCamera
এটির

4
হাহাহাহাহাহা ....... + 1 এই প্রশ্নের জন্য, আপনি আমার হৃদয় জিজ্ঞাসা। : ডি ... "এটি সর্বদা একটি নির্দিষ্ট স্থানে (আফ্রিকার নিকটে) থেকে শুরু হয়" ........ রফেল ..... যদিও ধন্যবাদ thanks
aਕਾਸ89

4
@ আকাশ 89 এটি প্রত্যাশা অনুযায়ী ল্যাটলং (০.০,০.০) থেকে শুরু হয়: google.com/maps/@0,0,5z আমি নিশ্চিত নই যে আপনি কীভাবে আক্ষরিকভাবে হাসতে মেঝেতে রোল তৈরি করছেন (যদি আমার ভুল না হয়) তবে আপনি খুশি যে আমি আনন্দিত :)
নাভিদ ভফেই

উত্তর:


175

আপনি এনিমেশন ছাড়াই সরাসরি জুম করতে এটি ব্যবহার করতে পারেন:

map.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(xxxx,xxxx) , 14.0f) );

ধন্যবাদ, আমার যা প্রয়োজন তা কেবল:)
dong221

আমার ন্যূনতম অক্ষাংশ / দ্রাঘিমাংশ এবং সর্বাধিক অক্ষাংশ / দ্রাঘিমাংশ আছে তবে কীভাবে সেট করবেন ???
প্রতীক বুটানি

আপনি তার জন্য নতুন প্রশ্ন যুক্ত করতে পারেন যাতে আমি আপনার জন্য পুরো উত্তরটি পোস্ট করতে পারি তবে সংক্ষেপে আপনাকে সীমানা তৈরি করতে এবং এটি ব্যবহার করতে ল্যাটলংবাউন্ডস.বিল্ডার ব্যবহার করতে হবে।
মোহ সাকিজিহা

4
@ সাসসাক আমার সমস্যাটি হ'ল আমি জিপিএস ধরার জন্য অপেক্ষা করছি যাতে আমি ব্যবহারকারীর লোকেশনটিতে MyLocationমানচিত্রটি সরানো এবং জুম করতে পারি। যেহেতু মানচিত্রটি এক্সএমএলে সূচনা করা হয়েছে, তাই লাফটি কীভাবে ঘটবে তা কীভাবে রাখা যায় তা আমি বুঝতে পারি না। আদর্শভাবে, আমি মানচিত্রটি লুকিয়ে রেখেছি যতক্ষণ না MyLocationএটি পাওয়া না যায়।
theblang

আমি যখন মানচিত্র রাখি তখন এটি আমাকে একটি ত্রুটি দেয় এবং আমাকে একটি ভেরিয়েবল 'মানচিত্র' তৈরি করতে বলেছিল। এটা কি আমদানি করা সম্ভব নাকি কিছু?
হানজাওয়া নওকি

86

ডকুমেন্টেশন এখানে একবার দেখুন:

https://developers.google.com/maps/docamentation/android-api/map#configure_initial_state

আপনি এক্সএমএল বা প্রোগ্রামগতভাবে ম্যাপ যুক্ত করছেন কিনা তার উপর নির্ভর করে এটি করার উপায়টি কিছুটা আলাদা। আপনি যদি এক্সএমএল ব্যবহার করে থাকেন তবে আপনি এটি নিম্নলিখিত হিসাবে এটি করতে পারেন:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.SupportMapFragment"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"/>

আপনি যদি প্রোগ্রামটিমে এটি করে থাকেন তবে আপনি নিম্নলিখিতগুলি করতে পারেন:

CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(new LatLng(-33, 150))
    .zoom(13)
    .build();
MapFragment.newInstance(new GoogleMapOptions()
    .camera(camera));

4
ভাল উত্তর. আসলে, এই একটি এই প্রশ্নের জন্য আরও উপযুক্ত।
মাইটিসেল

4
এক্সএমএলতে আমি লিঙ্ক ত্রুটি পেয়েছিUnexpected namespace prefix "map" found for tag fragment
মুহাম্মদ বাবর

এমনকি যদি এক্সএমএনএলএস: মানচিত্র = "স্কিমাস.অ্যান্ড্রয়েড.com/apk/res-auto" আপনার এখনও ত্রুটি রয়েছে। এই এক্সএমএলএনএস যুক্ত করার চেষ্টা করুন: সরঞ্জাম = " স্কিমাস.অ্যান্ড্রয়েড.com/tools " এবং "মানচিত্র:" এর পরিবর্তে "সরঞ্জামগুলি:" ব্যবহার করুন
গিলিয়াম ইলিচ চাচাভস্কি

সমস্ত বিকল্পের সাথে ডকুমেন্টেশনের লিঙ্ক: ডেভেলপারস.
অ্যালবার্ট ভিলা ক্যালভো 12'18

লেআউট বৈশিষ্ট্যাবলী খুঁজছিলেন, পুরোপুরি কাজ। ধন্যবাদ
অভিষেক গার্গ

5

আপনি যদি Google Mapকোনও প্রাথমিক Locationপ্রোগ্রামে লোড করতে চান তবে আপনি কোডের এই অংশটি ব্যবহার করতে পারেন,

FragmentManager fm = getFragmentManager(); // getChildFragmentManager inside fragments.
CameraPosition cp = new CameraPosition.Builder()
                    .target(initialLatLng) // your initial co-ordinates here. like, LatLng initialLatLng
                    .zoom(zoom_level)
                    .build();
SupportMapFragment mapFragment = SupportMapFragment.newInstance(new GoogleMapOptions().camera(cp));
fm.beginTransaction().replace(R.id.rl_map, mapFragment).commit();

কোডের এই অংশটি যুক্ত করুন layout

<RelativeLayout
       android:id="@+id/rl_map"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" />

এটি GoogleMapবিশেষত Locationপ্রত্যক্ষভাবে অর্থাৎ ইনিশিয়াল ল্যাটল্যাং লোড হবে ।


3

আমি এতে একটি হ্যান্ডেল তৈরি করেছি SupportMapFragmentএবং visibilityএটি View.INVISIBLEব্যবহার করতে সেট করেছি SupportMapFragment.getView().setVisibility()। তারপরে, onLocationChangedআমার ক্লাস যে কলব্যাক প্রয়োগ করে, আমি তা পরীক্ষা করে দেখি INVISIBLEএবং VISIBLEসত্য হিসাবে সেট হয়ে গেলে। আপনাকে প্রারম্ভিক অবস্থানটি গতিশীলরূপে আরম্ভ করার সময় লোডের উপর দিয়ে যে জাম্প দেখে তা থেকে মুক্তি পাওয়া যায়। আমার ক্ষেত্রে আমি ক্যামেরাকে ব্যবহারকারীর অবস্থানের চারপাশে কেন্দ্র করে দিচ্ছি, তাই onLocationChangedতত্ক্ষণাত ডাকা হয় setMyLocationEnabled(true)

আপনার প্রয়োজনীয়তা ভিন্ন হতে পারে, তবে উভয় উপায়ে আপনার কেবলমাত্র দৃশ্যমানতা সেট করতে হবে INVISIBLEএবং তারপরে VISIBLEআপনার উপযুক্ত ডেটা লোড হওয়ার পরে সেট করার জন্য একটি ভাল জায়গা খুঁজে পেতে হবে ।


2

আপনি স্ট্যাটিক ল্যাটলং ব্যবহার করে সরাসরি ক্যামেরাআপডেট ব্যবহার করতে পারেন

 LatLong latlong = new LatLong(lat, long);
 CameraUpdate cameraPosition = CameraUpdateFactory.newLatLngZoom(latLong, 15);
                mGoogleMap.moveCamera(cameraPosition);
                mGoogleMap.animateCamera(cameraPosition);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.