অ্যান্ড্রয়েডের অভিপ্রায়ের মাধ্যমে গুগল মানচিত্রের দিকনির্দেশগুলি চালু করা হচ্ছে


399

আমার অ্যাপ্লিকেশনটির A থেকে বি পর্যন্ত Google মানচিত্রের দিকনির্দেশগুলি দেখাতে হবে, তবে আমি Google অ্যাপ্লিকেশনগুলিতে গুগল ম্যাপগুলি রাখতে চাই না - পরিবর্তে, আমি এটি একটি ইন্টেন্ট ব্যবহার করে এটি চালু করতে চাই। এটা কি সম্ভব? যদি হ্যাঁ, কিভাবে?


উত্তর:


630

আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);

বর্তমান অবস্থান থেকে নেভিগেশন শুরু করতে, saddrপ্যারামিটার এবং মানটি সরান ।

অক্ষাংশ এবং দ্রাঘিমাংশের পরিবর্তে আপনি একটি আসল রাস্তার ঠিকানা ব্যবহার করতে পারেন। তবে এটি ব্যবহারকারীকে ব্রাউজার বা গুগল ম্যাপের মাধ্যমে এটি খোলার মধ্যে চয়ন করার জন্য একটি ডায়ালগ দেবে।

এটি সরাসরি নেভিগেশন মোডে গুগল ম্যাপগুলিকে জ্বালিয়ে দেবে:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
    Uri.parse("google.navigation:q=an+address+city"));

হালনাগাদ

মে 2017 এ গুগল সর্বজনীন, ক্রস-প্ল্যাটফর্ম গুগল ম্যাপস ইউআরএলগুলির জন্য নতুন এপিআই চালু করেছে:

https://developers.google.com/maps/documentation/urls/guide

আপনি নতুন এপিআইয়ের সাথে এজেন্টসও ব্যবহার করতে পারেন।


2
এমন নয় যে আমি জানিনা. তবে, ব্যবহারকারী যদি ইতিমধ্যে মানচিত্র অ্যাপ্লিকেশন হিসাবে এই জাতীয় অভিপ্রায় খোলার জন্য ডিফল্ট অ্যাপ্লিকেশনটি বেছে নিয়ে থাকেন তবে কোনও ডায়ালগ থাকবে না।
জানু এস

111
আপনি যদি ডায়লগটি থেকে মুক্তি পেতে চান তবে আপনি কোন প্যাকেজটি ব্যবহার করতে চান তা অভিপ্রায়টি দিতে পারেন। শুরু করার আগে কার্যকলাপ () এটি যুক্ত করুন: intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
জেরেমি লোগান

এবং কীভাবে এটি ন্যাভিগেটরে প্রদর্শন করতে জোর করবেন এবং গুগল্যাপস অ্যাপ্লিকেশনটিতে নয়?
নালপয়েন্টার এক্সসেপশন

68
ব্যবহারকারীদের যখন তারা পছন্দ করেন এমন অন্যান্য অ্যাপস থাকতে পারে তখন একটি নির্দিষ্ট ক্রিয়াকলাপে বাধ্য করা আমার কাছে এটি অ্যান্ড্রয়েড স্পিরিটের সাথে একত্রে বিপরীত বলে মনে হয়। অভিপ্রায়কারী ফিল্টারগুলিকে এখানে জিনিসগুলির যত্ন নিতে দেওয়াতে আমি প্রলুব্ধ হব।
অতিমানবিক

15
নেভিগেশন অভিপ্রায়গুলি এখন আনুষ্ঠানিকভাবে সমর্থিত বলে মনে হচ্ছে: developers.google.com/maps/docamentation/android/…
সংকেত কত্ত

124

এটি সামান্য অফ-টপিক কারণ আপনি "দিকনির্দেশগুলি" চেয়েছিলেন, তবে আপনি অ্যান্ড্রয়েড ডকুমেন্টেশনে বর্ণিত জিও ইউআরআই স্কিমটিও ব্যবহার করতে পারেন:

http://developer.android.com/guide/appendix/g-app-intents.html

"জিও: অক্ষাংশ, দ্রাঘিমাংশ" ব্যবহার করে সমস্যা হ'ল গুগল ম্যাপগুলি কোনও পিন বা লেবেল ছাড়াই কেবলমাত্র আপনার বিন্দুতে কেন্দ্র করে।

এটি বেশ বিভ্রান্তিকর, বিশেষত যদি আপনাকে একটি সুনির্দিষ্ট জায়গার দিকে নির্দেশ করতে হয় বা / এবং দিকনির্দেশনা চাইতে হয়।

আপনি যদি আপনার জিওপয়েন্টটি লেবেল করতে "জিও: ল্যাট, লোন? কিউ = নাম" ক্যোয়ারী প্যারামিটারটি ব্যবহার করেন তবে এটি অনুসন্ধানের জন্য ক্যোয়ারীটি ব্যবহার করে এবং ল্যাট / লম্বা পরামিতিগুলি খারিজ করে দেয়।

দিকনির্দেশ বা অন্য কোনও ক্রিয়াকলাপ জিজ্ঞাসা করার সময় আমি লেট / লোন দিয়ে মানচিত্রকে কেন্দ্র করে একটি কাস্টম লেবেল সহ একটি পিন প্রদর্শন করার একটি উপায় পেয়েছি:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("geo:0,0?q=37.423156,-122.084917 (" + name + ")"));
startActivity(intent);

দ্রষ্টব্য (@ দ্য নেল দ্বারা): মানচিত্র v.7 এ কাজ করছেন না (লেখার সময় সর্বশেষতম সংস্করণ)। স্থানাঙ্কগুলি উপেক্ষা করবে এবং প্রথম বন্ধনীর মধ্যে প্রদত্ত নামের সাথে কোনও বস্তুর সন্ধান করবে। অবস্থান সহ Google মানচিত্র .0.০.০ এর জন্যও লক্ষ্যমাত্রা দেখুন


3
দুর্দান্ত, ডিফল্ট জিও: 0,0 কেবল মানচিত্রটি সেখানে স্থানান্তরিত করে। এই সমাধানটি ["জিও: 0,0? কিউ = 37.423156, -122.084917 (" + নাম + ")"] আপনাকে নিজের চিহ্নিতকারীর নাম রাখতে দেয়। ধন্যবাদ।
gnac

4
দুর্দান্ত কাজ করে
ফাই

1
অভিপ্রায় মধ্যে ডিফল্ট ট্রানজিট মোড সেট করা সম্ভব? ডিফল্টরূপে গাড়ী বিকল্প নির্বাচন করা হয়। আমি কি ডিফল্ট মোড হিসাবে হাঁটা সেট করতে পারি?
বিয়ার

6
আপনি ব্যবহার করবেন না কেন geo:37.423156,-122.084917?q=37.423156,-122.084917 ...?
31:38

1
আপনি লেবেল প্যারামিটারটি url এনকোড করেছেন তা নিশ্চিত করুন। স্পেসের মতো বিশেষ চরিত্র নিয়ে আমার সমস্যা ছিল।
ইথান

100

যদিও বর্তমান উত্তরগুলি দুর্দান্ত, তবে তাদের মধ্যে কেউই আমি যা খুঁজছিলাম ঠিক তেমন করেনি, আমি কেবল মানচিত্র অ্যাপটি খুলতে চেয়েছি, উত্সের অবস্থান এবং গন্তব্যের প্রত্যেকটির জন্য একটি নাম যুক্ত করতে চেয়েছি, জিও ইউআরআই স্কিম ব্যবহার করা আমার পক্ষে কাজ করবে না মোটেও এবং মানচিত্রের ওয়েব লিঙ্কটিতে লেবেল ছিল না তাই আমি এই সমাধানটি নিয়ে এসেছি, যা মূলত এখানে তৈরি অন্যান্য সমাধান এবং মন্তব্যের সংমিশ্রণ, আশা করি এটি এই প্রশ্নটি দেখার জন্য অন্যদের পক্ষে সহায়ক।

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?saddr=%f,%f(%s)&daddr=%f,%f (%s)", sourceLatitude, sourceLongitude, "Home Sweet Home", destinationLatitude, destinationLongitude, "Where the party is at");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setPackage("com.google.android.apps.maps");
startActivity(intent);

আপনার বর্তমান অবস্থানটি প্রারম্ভিক পয়েন্ট হিসাবে ব্যবহার করতে (দুর্ভাগ্যক্রমে আমি বর্তমান অবস্থানের লেবেল দেওয়ার কোনও উপায় খুঁজে পাইনি) তারপরে নিম্নলিখিতটি ব্যবহার করুন

String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?daddr=%f,%f (%s)", destinationLatitude, destinationLongitude, "Where the party is at");
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setPackage("com.google.android.apps.maps");
startActivity(intent);

সম্পূর্ণতার জন্য, যদি ব্যবহারকারী মানচিত্র অ্যাপ্লিকেশন ইনস্টল না করে থাকে তবে এটি অ্যাক্টিভিটি নটফাউন্ডএক্সসেপশন ধরা ভাল ধারণা হতে চলেছে, তবে আমরা মানচিত্রের অ্যাপ্লিকেশন নিষেধাজ্ঞা ব্যতীত আবার ক্রিয়াকলাপ শুরু করতে পারি, আমরা নিশ্চিত হতে পারি যে আমরা কখনই পাব না টোস্টে শেষে যেহেতু ইন্টারনেট ব্রাউজারটিও এই ইউআরএল স্কিমটি চালু করার জন্য একটি বৈধ অ্যাপ্লিকেশন।

        String uri = String.format(Locale.ENGLISH, "http://maps.google.com/maps?daddr=%f,%f (%s)", 12f, 2f, "Where the party is at");
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        intent.setPackage("com.google.android.apps.maps");
        try
        {
            startActivity(intent);
        }
        catch(ActivityNotFoundException ex)
        {
            try
            {
                Intent unrestrictedIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
                startActivity(unrestrictedIntent);
            }
            catch(ActivityNotFoundException innerEx)
            {
                Toast.makeText(this, "Please install a maps application", Toast.LENGTH_LONG).show();
            }
        }

পিএস আমার উদাহরণে ব্যবহৃত কোনও অক্ষাংশ বা দ্রাঘিমাংশ আমার অবস্থানের প্রতিনিধিত্বকারী নয়, কোনও সত্য অবস্থানের সাথে তুলনা করা শুদ্ধ কাকতালীয়, ওরফে আমি আফ্রিকা থেকে নই: পি

সম্পাদনা করুন:

দিকনির্দেশগুলির জন্য, একটি নেভিগেশন উদ্দেশ্য এখন google.navigation দ্বারা সমর্থিত

Uri navigationIntentUri = Uri.parse("google.navigation:q=" + 12f +"," + 2f);//creating intent with latlng
Intent mapIntent = new Intent(Intent.ACTION_VIEW, navigationIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

2
এটি একটি দুর্দান্ত উত্তর ডেভিড! এছাড়াও আপনি কীভাবে কীভাবে নেভিগেশন অ্যাপের অভ্যন্তরে নেভিগেশনটি শুরু করবেন তা জানেন? তার বর্তমান অবস্থায় ব্যবহারকারীকে একটি চূড়ান্ত সময় 'স্টার্ট নেভিগেশন' ক্লিক করতে হবে। আমি কোনও প্যারামিটারটি পাস করার জন্য গুগল অনুসন্ধান করেছি, কিন্তু কোনও খুঁজে পেলাম না।
নির্মল

মানচিত্র অ্যাপ্লিকেশন থেকে পিছনে বোতাম টিপানোর সময়, একটি কালো স্ক্রিন দেখায় এবং অন্তর্নিহিত ক্রিয়াকলাপটি পুনরায় তৈরি করা হয় ny কোনও ধারণা কীভাবে এটি ঠিক করবেন?
জাস

@ যাস ইন্টেন্ট.সেটক্লাসনাম পদ্ধতিটি সরিয়ে ফেলুন
আমিন

হাই, উপরের কোডটি অ্যান্ড্রয়েড সংস্করণ ৪.৪.২, ৪.৪.৪ এবং ৫.০.২ এ ডিফল্ট মানচিত্র অ্যাপ্লিকেশন চালু করতে দীর্ঘ সময় নিচ্ছে। এটি 5.1 এবং মার্শমেলো সংস্করণে সূক্ষ্ম সূচনা হয়। আপনি দয়া করে এই সমস্যাটি সমাধানে সহায়তা করতে পারেন।
ওয়ানপঞ্চমান 5'17

আমি এখন ইন্টেন্ট.সেটক্লাসনাম ("com.google.android.apps.maps", "com.google.android.maps.MapsActivity") এর পরিবর্তে intent.SetPackage ব্যবহার করার পরামর্শ দেব; আমি এটি প্রতিফলিত উত্তর আপডেট করব।
ডেভিড থম্পসন

22

সর্বশেষতম ক্রস-প্ল্যাটফর্ম গুগল ম্যাপস ইউআরএলগুলি ব্যবহার করে : গুগল ম্যাপস অ্যাপটি অনুপস্থিত থাকলেও এটি ব্রাউজারে খুলবে open

উদাহরণ https://www.google.com/maps/dir/?api=1&origin=81.23444,67.0000&destination=80.252059,13.060604

Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
    .authority("www.google.com")
    .appendPath("maps")
    .appendPath("dir")
    .appendPath("")
    .appendQueryParameter("api", "1")
    .appendQueryParameter("destination", 80.00023 + "," + 13.0783);
String url = builder.build().toString();
Log.d("Directions", url);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

10

বিভিন্ন মোড সহ ইন্টেন্ট ব্যবহার করে গুগল ম্যাপস খুলুন:

আমরা অভিপ্রায় ব্যবহার করে গুগল ম্যাপস অ্যাপ খুলতে পারি:

val gmmIntentUri = Uri.parse("google.navigation:q="+destintationLatitude+","+destintationLongitude + "&mode=b")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
startActivity(mapIntent)

এখানে "মোড = বি" সাইকেলের জন্য।

আমরা ড্রাইভিং, হাঁটাচলা এবং সাইক্লিং মোড সেট করে ব্যবহার করতে পারি:

  • ড্রাইভিং জন্য d
  • হাঁটার জন্য ড
  • সাইকেল চালানোর জন্য খ

আপনি গুগল ম্যাপের সাথে অভিপ্রায় সম্পর্কে আরও জানতে পারেন এখানে

দ্রষ্টব্য: যদি সাইকেল / গাড়ি / হাঁটার জন্য কোনও রাস্তা না থাকে তবে এটি আপনাকে "সেখানে উপায় খুঁজে পাচ্ছে না" দেখায়

আপনি আমার মূল উত্তরটি এখানে পরীক্ষা করতে পারেন ।


8

ভাল আপনি Intent.setClassNameপদ্ধতিটি ব্যবহার করে বিল্ট-ইন অ্যাপ্লিকেশন অ্যান্ড্রয়েড মানচিত্র খোলার চেষ্টা করতে পারেন ।

Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse("geo:37.827500,-122.481670"));
i.setClassName("com.google.android.apps.maps",
    "com.google.android.maps.MapsActivity");
startActivity(i);

6

একাধিক উপায় পয়েন্টগুলির জন্য, নিম্নলিখিতগুলিও ব্যবহার করা যেতে পারে।

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
    Uri.parse("https://www.google.com/maps/dir/48.8276261,2.3350114/48.8476794,2.340595/48.8550395,2.300022/48.8417122,2.3028844"));
startActivity(intent);

স্থানাঙ্কের প্রথম সেটটি হ'ল আপনার শুরুর অবস্থান। পরের সমস্তটি ওয়ে পয়েন্ট, প্লট করা রুট দিয়ে যায়।

শেষে শেষে "/ অক্ষাংশ, দ্রাঘিমাংশ" যুক্ত করে পথের পয়েন্টগুলি যুক্ত রাখুন। গুগল ডক্স অনুসারে আপাতদৃষ্টিতে 23 টি পয়েন্টের সীমা রয়েছে । এটি অ্যান্ড্রয়েডেও প্রযোজ্য কিনা তা নিশ্চিত নয়।


কি কাজ করছে না? এই সঠিক কোডটি কার্যকর করার সময় আপনি কী দেখছেন?
আদিল তারিক

আসলে আমি এখানে যে সঠিক স্থানাঙ্কগুলি রেখেছি তা ব্যবহার করবেন না। তারা কোথাও মাঝখানে যেখানে কোথাও কোনও রাস্তা নেই যাতে কাজ করে না।
আদিল তারিক

4

আপনি যদি বর্তমান দিক থেকে অক্ষাংশ এবং দ্রাঘিমাংশ দেখানোর আগ্রহী হন তবে আপনি এটি ব্যবহার করতে পারেন:

নির্দেশাবলী সর্বদা ব্যবহারকারীদের বর্তমান অবস্থান থেকে দেওয়া হয়।

নিম্নলিখিত ক্যোয়ারী আপনাকে এটি সম্পাদনে সহায়তা করবে। আপনি এখানে গন্তব্য অক্ষাংশ এবং দ্রাঘিমাংশ পাস করতে পারেন:

google.navigation:q=latitude,longitude

উপরে হিসাবে ব্যবহার করুন:

Uri gmmIntentUri = Uri.parse("google.navigation:q=latitude,longitude");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

বা যদি আপনি অবস্থানের মাধ্যমে দেখাতে চান তবে ব্যবহার করুন:

google.navigation:q=a+street+address

এখানে আরও তথ্য: অ্যান্ড্রয়েডের জন্য গুগল ম্যাপস ইন্টেন্টস


কাজ করার দিকনির্দেশগুলির জন্য, আমাকে যুক্ত করা দরকারmapIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
কেউ কোথাও

4

DirectionsViewস্ট্রিং হিসাবে দেওয়া হিসাবে বর্তমান অবস্থান এবং গন্তব্য অবস্থান হিসাবে উত্স অবস্থান সহ গুগল

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&daddr="+destinationCityName));
intent.setComponent(new ComponentName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"));
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
}

উপরের destinationCityNameঅংশে প্রয়োজনীয় হিসাবে এটির একটি স্ট্রিং ভেরিয়েবল পরিবর্তন করা হয়েছে।


3

এটা চেষ্টা কর

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr="+src_lat+","+src_ltg+"&daddr="+des_lat+","+des_ltg));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

3

এটিই আমার পক্ষে কাজ করেছে:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://maps.google.co.in/maps?q=" + yourAddress));
if (intent.resolveActivity(getPackageManager()) != null) {
   startActivity(intent);
}

1

আপনি যদি পয়েন্ট এ, পয়েন্ট বি জানেন (এবং এর মধ্যে যা কিছু বৈশিষ্ট্য বা ট্র্যাক রয়েছে) আপনি নিজের অভিপ্রায় সহ একটি কেএমএল ফাইল ব্যবহার করতে পারেন।

String kmlWebAddress = "http://www.afischer-online.de/sos/AFTrack/tracks/e1/01.24.Soltau2Wietzendorf.kml";
String uri = String.format(Locale.ENGLISH, "geo:0,0?q=%s",kmlWebAddress);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(intent);

আরও তথ্যের জন্য, এই এসও উত্তর দেখুন

দ্রষ্টব্য: এই উদাহরণটি একটি নমুনা ফাইল ব্যবহার করে যা (মার্ 13 হিসাবে) এখনও অনলাইনে রয়েছে। যদি এটি অফলাইনে চলে যায় তবে অনলাইনে একটি কিমিএল ফাইল সন্ধান করুন এবং আপনার ইউআরএল পরিবর্তন করুন


1
মানচিত্র অ্যাপ্লিকেশন থেকে পিছনে বোতাম টিপানোর সময়, একটি কালো স্ক্রিন দেখায় এবং অন্তর্নিহিত ক্রিয়াকলাপটি পুনরায় তৈরি করা হয় ny কোনও ধারণা কীভাবে এটি ঠিক করবেন?
জাস

@ জাস, গুগল তার এপিআই প্রচুর পরিবর্তন করেছে এবং সম্ভবত এই আচরণটিও পরিবর্তিত হয়েছে। আমি বেশ কিছুদিন ধরে একচেটিয়াভাবে খোলা রাস্তার মানচিত্র ব্যবহার করছি, তাই আমি আপনাকে সহায়তা করতে সক্ষম হব। :)
টনি গিল

0

প্রথমে আপনার এখন দরকার যা আপনি অন্তর্নিহিত অভিপ্রায়টি ব্যবহার করতে পারেন, অ্যান্ড্রয়েড ডকুমেন্টেশন আমাদের মানচিত্রের অভিপ্রায় বাস্তবায়নের জন্য একটি খুব সাধারণ সাধারণ অভিপ্রায় সরবরাহ করে যা আপনাকে দুটি পরামিতি সহ একটি নতুন অভিপ্রায় তৈরি করতে হবে

  • কর্ম
  • উরি

ক্রিয়াকলাপের জন্য আমরা ব্যবহার করতে পারি Intent.ACTION_VIEW এবং উরির জন্য আমাদের এটি তৈরি করা উচিত, নীচে আমি ক্রিয়াকলাপ তৈরি করতে, তৈরি করতে এবং শুরু করতে একটি নমুনা কোড সংযুক্ত করেছি।

 String addressString = "1600 Amphitheatre Parkway, CA";

    /*
    Build the uri 
     */
    Uri.Builder builder = new Uri.Builder();
    builder.scheme("geo")
            .path("0,0")
            .query(addressString);
    Uri addressUri = builder.build();
    /*
    Intent to open the map
     */
    Intent intent = new Intent(Intent.ACTION_VIEW, addressUri);

    /*
    verify if the devise can launch the map intent
     */
    if (intent.resolveActivity(getPackageManager()) != null) {
       /*
       launch the intent
        */
        startActivity(intent);
    }

1
ইউরি.বিল্ডার ব্যবহার করা কেবলমাত্র ইউআরআই-এর জন্য কাজ করে: আকারে <scheme>://<authority><absolute path>?<query>#<fragment>, অস্বচ্ছ ইউআরআই নয় <scheme>:<opaque part>#<fragment>। উপরের কোডটি নিম্নলিখিত ইউআরআই প্রদান করে: geo:/0%2C0?Eiffel%20Towerযার ফলে গুগল ম্যাপস অ্যাপটি ক্রাশ হয়। এমনকি অফিসিয়াল ডকুমেন্টেশনও এই কারণে কাঁচা / অস্বচ্ছ ইউআরআই ব্যবহার করে। সঠিক কোডটি তখন হবে:Uri.parse("geo:0,0?q=" + Uri.encode("Eiffel Tower"))
বিটেক

: কেন আপনার উত্তর যদি কাজ না হয় জন্য একটি ব্যাখ্যা জন্য এই উত্তরটি দেখুন stackoverflow.com/a/12035226/313113
bitek

0

লক্ষ্মণ সাঁই উল্লিখিত সর্বশেষ ক্রস-প্ল্যাটফর্ম উত্তরটি ব্যবহার করে একটি দুর্দান্ত কোটলিন সমাধান ...

কোনও অপ্রয়োজনীয় Uri.toString এবং Uri.parse না হলেও এই উত্তরটি পরিষ্কার এবং ন্যূনতম:

 val intentUri = Uri.Builder().apply {
      scheme("https")
      authority("www.google.com")
      appendPath("maps")
      appendPath("dir")
      appendPath("")
      appendQueryParameter("api", "1")
      appendQueryParameter("destination", "${yourLocation.latitude},${yourLocation.longitude}")
 }.build()
 startActivity(Intent(Intent.ACTION_VIEW).apply {
      data = intentUri
 })

0

আপনি এইভাবে অ্যান্ড্রয়েডে একটি অভিপ্রায় মাধ্যমে গুগল মানচিত্রের দিকনির্দেশগুলি চালু করতে পারেন

btn_search_route.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String source = et_source.getText().toString();
            String destination = et_destination.getText().toString();

            if (TextUtils.isEmpty(source)) {
                et_source.setError("Enter Soruce point");
            } else if (TextUtils.isEmpty(destination)) {
                et_destination.setError("Enter Destination Point");
            } else {
                String sendstring="http://maps.google.com/maps?saddr=" +
                        source +
                        "&daddr=" +
                        destination;
                Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
                        Uri.parse(sendstring));
                startActivity(intent);
            }
        }

    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.