প্রদত্ত স্থানটি নির্ধারণ করে বর্তমান অবস্থান থেকে শুরু হওয়া রুট দিয়ে গুগল ম্যাপ খোলার সমস্ত মোবাইল ডিভাইসের জন্য কীভাবে লিঙ্ক তৈরি করবেন?


89

আমি বরং ভেবেছিলাম এটি সন্ধান করা এত কঠিন হবে না তবে আপনি যেমন প্রত্যাশা করতেন তেমন একটি দুর্দান্ত ক্রস ডিভাইস নিবন্ধ সন্ধান করা সহজ নয়।

আমি একটি লিঙ্ক তৈরি করতে চাই যা মোবাইল ডিভাইসের ব্রাউজারটি খুলবে এবং গুগল ম্যাপে সার্ফ করুন বা একটি মানচিত্র অ্যাপ (অ্যাপল ম্যাপস বা গুগল ম্যাপস) খুলুন এবং সরাসরি একটি রুট শুরু করুন, যেমন: বর্তমান অবস্থানে শুরু করুন, একটি নির্দিষ্ট বিন্দুতে শেষ করুন ( ল্যাট / লম্বা)।

আমি দুটি ডিভাইস (ব্রাউজারস্ট্যাকের পাশে), একটি অ্যান্ড্রয়েড এবং একটি আইফোন পরীক্ষা করতে পারি।

নিম্নলিখিত লিঙ্কটি কেবল অ্যান্ড্রয়েডে কাজ করে:

<a href="http://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>

আইফোনের ক্রোমে এই লিঙ্কটি ক্লিক করে, এই অদ্ভুতভাবে মোবাইল অ্যাপ্লিকেশনটিতে বিজ্ঞাপন সহ ডেস্কটপ সংস্করণে গুগল ম্যাপস খুলবে ...

এটি কেবলমাত্র আইওএস-এ কাজ করে, অ্যাপল মানচিত্র খোলার সাথে সাথে আমাকে একটি শুরুর অবস্থান লিখতে বলে (আমি "বর্তমান অবস্থান" চয়ন করতে পারি) এবং রুটটি = পছন্দসই আচরণ শুরু করতে পারি। এই লিঙ্কটি ক্লিক করা অ্যান্ড্রয়েডে সম্পূর্ণ ব্যর্থ হয়:

<a href="maps://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>

মানচিত্রগুলি লক্ষ্য করুন: // প্রোটোকল।

এই জাতীয় লিঙ্ক তৈরি করার জন্য কি কোনও মার্জিত ক্রস ডিভাইস আছে? একটি লিঙ্ক যা সমস্ত প্রধান মোবাইলগুলিতে কাজ করে?

ধন্যবাদ

আপডেট: সমাধান পাওয়া গেছে (কিন্ডা)

আমি যা নিয়ে এসেছি তা এখানে। এটি আমি যা কল্পনা করেছি ঠিক তা নয়, যদিও এটি কাজ করছে।

var ua = navigator.userAgent.toLowerCase(),
    plat = navigator.platform,
    protocol = '',
    a,
    href;

$.browser.device = ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i) ? ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i)[0] : false;


if ($.browser.device) {
    switch($.browser.device) {
        case 'iphone':
        case 'ipad':
        case 'ipod':
            function iOSversion() {
              if (/iP(hone|od|ad)/.test(navigator.platform)) {
                // supports iOS 2.0 and later: <http://bit. ly/TJjs1V>
                var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
                return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
              }
            }

            var ver = iOSversion() || [0];

            if (ver[0] >= 6) {
              protocol = 'maps://';
            }
            else {
                protocol = 'http://maps.google.com/maps';
            }
        break;

        case 'android':
        default:
            protocol = 'http://maps.google.com/maps';
        break;
    }

a.attr('href', protocol + href)

maps://প্রোটোকল আপেল জন্য URL স্কিম মানচিত্র অ্যাপ, যা শুধুমাত্র iOS 6 বা উচ্চতর উপর কাজ শুরু হবে। জিপাস ইনস্টল করা আছে এবং তারপরে ইউআরএলটি দিয়ে কী করা উচিত তা বেছে নেওয়ার বিভিন্ন উপায় রয়েছে তবে আমি যা চেয়েছিলাম তা তার পক্ষে খুব বেশি ছিল। সুতরাং আমি উপরের প্যারামিটারগুলি ব্যবহার করে কেবলমাত্র একটি মানচিত্র: // ও ম্যাপস জিআরএল / লিঙ্ক তৈরি করে শেষ করেছি।

** হালনাগাদ **

দুঃখিতভাবে, $ .browser.device যেহেতু কাজ করে না jQuery 1.9 (উৎস - http://api.jquery.com/jquery.browser )


4
আপনি কোন সার্ভারের সাইড ল্যাঙ্গুয়েজ ব্যবহার করেন? আপনি ব্যবহারকারী-এজেন্ট স্নিফিংয়ের মাধ্যমে এই সমস্যাটি সমাধান করতে পারেন।
ইউওও

আমি জানি যে আমি পারতাম, তবে আমি সেই ক্রস ব্রাউজারটি তৈরি করতে চাই। আমার পিএইচপি এবং জেএস আছে
অ্যালেক্স

@ অ্যালেক্স - আপনি কীভাবে এটি ডেস্কটপগুলিতে কাজ করতে অনুবাদ করবেন? সুতরাং maps.google.comএটি অ্যান্ড্রয়েড এবং ডেস্কটপ এবং maps:// আইওএস এ কাজ করে।
কাওসিফাই

@ অ্যালেক্স - আমি বলার একটি ত্রুটি পেয়ে যাচ্ছি a(শেষ লাইন) অপরিজ্ঞাত । আমার একটি ইনফোউন্ডোর ভিতরে একটি URL রয়েছে যা ব্যবহৃত ডিভাইসের উপর নির্ভর করে আমার এটি পরিবর্তন করতে হবে change
কাওসিফাই

4
আমি দেখতে পেয়েছি যে উত্তরগুলির কোনওটিই প্ল্যাটফর্মটি সনাক্ত করতে (ব্রাউজারটি নয়) সত্যিই দুর্দান্ত কাজ করতে পারে তাই আমি পিজডব্ল্রোসরকে একটি প্ল্যাটফর্ম (যেমন ডেস্কটপ, মোবাইল), ব্রাউজার এবং এমনকি ওএস সনাক্ত করে এমন একটি jQuery প্লাগইন পেয়েছি । এটি এছাড়াও> 2 কেবি, যখন সংকুচিত এবং জিজেপ করা হয়। এটির সাহায্যে আমি কেবলমাত্র একটি switchবিবৃতিতে os.group পরীক্ষা করতে পারি এবং সেই অনুযায়ী ব্রাউজারটি রুট করতে পারি।
filoxo

উত্তর:


94

উম্মু, আমি ফোনের সাথে খুব বেশি কাজ করি নি তাই ডুনো যদি এটি কাজ করে তবে কেবল এইচটিএমএল / জাভাস্ক্রিপ্ট দৃষ্টিকোণ থেকে আপনি কেবল ব্যবহারকারীটির ডিভাইসটির উপর নির্ভর করে কোনও আলাদা url খুলতে পারবেন?

<a style="cursor: pointer;" onclick="myNavFunc()">Take me there!</a>

function myNavFunc(){
    // If it's an iPhone..
    if( (navigator.platform.indexOf("iPhone") != -1) 
        || (navigator.platform.indexOf("iPod") != -1)
        || (navigator.platform.indexOf("iPad") != -1))
         window.open("maps://www.google.com/maps/dir/?api=1&travelmode=driving&layer=traffic&destination=[YOUR_LAT],[YOUR_LNG]");
    else
         window.open("https://www.google.com/maps/dir/?api=1&travelmode=driving&layer=traffic&destination=[YOUR_LAT],[YOUR_LNG]");
}

আপনার এবং অ্যালেক্স প্রেটজ্লাভ উত্তরগুলি আমার পক্ষে সবচেয়ে কাছের কাজ করে তবে জাভাস্ক্রিপ্ট ব্যবহার করার সময় আপনার চেহারাটি কেমন হতে পারে সেদিকে আরও বেশি এগিয়ে যায়, আপনাকে ধন্যবাদ। চূড়ান্ত সমাধান সরবরাহ করতে আমি আমার পোস্ট আপডেট করব
অ্যালেক্স

4
আমি প্রায় এক বছর আগে এটি নিয়ে অনেক গবেষণা করেছিলাম এবং আপনাকে বলতে পারি যে মানচিত্র.এপলল ব্যবহার করে ??q= মেক্সিকান + রিসার্টল গুগল পৃষ্ঠায় পুনর্নির্দেশ করবে (এটি চেষ্টা করুন!) এবং ব্যতিক্রম যেখানে এটি এমন একটি ডিভাইস রয়েছে যেখানে আপেল মানচিত্র অ্যাপ্লিকেশন, এটি পরিবর্তে অ্যাপ্লিকেশন খুলবে। অন্য কিছুর জন্য এটি গুগল ম্যাপস অ্যাপ / পৃষ্ঠা খুলবে। অনুগ্রহ করে প্লিজ।
মূল্যবান

বিশেষত আপনি যা খুঁজছেন তা হ'ল: মানচিত্র.অ্যাপল.com /? دادdr=San+Francisco&dirflg=d&t=h এবং ডকুমেন্টেশনটি এখানে রয়েছে: বিকাশকারী.অ্যাপল.
com

@ ওয়ার্থি apparent স্পষ্টতই, আমি পরীক্ষা করে দেখিনি, তবে অ্যান্ড্রয়েডে মানচিত্র.এপল.com/* গুগল ম্যাপের ওয়েবসাইটে পুনর্নির্দেশ করবে, অন্যদিকে মানচিত্রের জিমেইলে আপনাকে কোনও নেপাল মানচিত্র অ্যাপ্লিকেশন নির্বাচন করতে অনুমতি দেবে।
জেমস

আমি একটি নতুন ব্রাউজার পৃষ্ঠার পরিবর্তে অ্যান্ড্রয়েডে ব্যবহারকারী মানচিত্র অ্যাপ্লিকেশনটি খুলতে এই উত্তরটি ব্যবহার করার সুপারিশ করব !
পলকো

24

মজার বিষয় হল, http://maps.apple.comলিঙ্কগুলি কোনও আইওএস ডিভাইসে অ্যাপল মানচিত্রে সরাসরি খুলবে, বা গুগল মানচিত্রে অন্যথায় পুনঃনির্দেশিত হবে (যা তখন একটি অ্যান্ড্রয়েড ডিভাইসে আটকানো হয়), যাতে আপনি একটি যত্নবান ইউআরএল তৈরি করতে পারেন যা উভয় ক্ষেত্রেই সঠিকভাবে কাজ করবে " অ্যাপল মানচিত্র "ইউআরএল এর মতো:

http://maps.apple.com/?daddr=1600+Amphitheatre+Pkwy,+Mountain+View+CA

বিকল্পভাবে, আপনি /mapsঅ্যান্ড্রয়েড ডিভাইসে গুগল ম্যাপে সরাসরি খুলতে বা কোনও আইওএস ডিভাইসে গুগল ম্যাপের মোবাইল ওয়েবে খুলতে সরাসরি ( ইউআরএল উপাদান ছাড়াই ) একটি গুগল ম্যাপস ইউআরএল ব্যবহার করতে পারেন :

http://maps.google.com/?daddr=1+Infinite+Loop,+Cupertino+CA


4
তাই আমি আমার অ্যান্ড্রয়েড ফোনটি নিয়েছি, গুগল ক্রোম ওয়েব ব্রাউজারটি খুললাম এবং ইউআরএল প্রবেশ করলাম http://maps.google.com/। এটি ওয়েব ব্রাউজারে এই ইউআরএলটিতে সবেমাত্র এই URL টি খুলেছে। আমি এটি গুগল ম্যাপস অ্যাপটি খোলার প্রত্যাশা করেছি । আপনি এখানে যা লিখেছেন তা কি আমি ভুল বুঝেছি, অ্যালেক্স প্রেস্টলভ? ;-)
লিও

4
লিওতে ক্লিক করে বনাম সরাসরি ব্রাউজারে প্রবেশ করার সময় @ লিয়ো অ্যান্ড্রয়েড ইউআরএলগুলি আলাদাভাবে পরিচালনা করে। নিজেকে গুগল ম্যাপ্স ইউআরএল করার চেষ্টা করুন যেমন মানচিত্র. google.com??ddr=1600+Amphitheatre+Pkwy,+ মাউন্টেন+ ভিউ + সিএ এবং তারপরে এটি আপনার ইমেল ক্লায়েন্ট থেকে আলতো চাপুন
অ্যালেক্স প্রেটজেলাভ

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

4
একটি URL তাই আমি আমার Android এ পরীক্ষা করতে পারেন হিসাবে এই পোস্ট maps.apple.com/?daddr=1600+Amphitheatre+Pkwy,+Mountain+View+CA URL টি উপরে দ্য আমার Android এ মানচিত্র (ওয়েবসাইট) Google রিডাইরেক্ট, যেহেতু maps.google.comআমাকে আমার অ্যান্ড্রয়েড ফোনে বিভিন্ন দিকনির্দেশ অ্যাপ্লিকেশন খুলতে অনুমতি দেয়।
রাফেল

15

এই প্রশ্নটিতে কেবল বিড়বিড় হয়ে সমস্ত উত্তর পেয়ে গেলাম আমি উপরের কয়েকটি কোড নিয়েছি এবং অ্যান্ড্রয়েড এবং আইফোন (এটি প্রায় প্রতিটি অ্যান্ড্রয়েড এবং আইফোন সমর্থন করে) এর জন্য সহজ জেএস ফাংশন তৈরি করেছি made

  function navigate(lat, lng) {
    // If it's an iPhone..
    if ((navigator.platform.indexOf("iPhone") !== -1) || (navigator.platform.indexOf("iPod") !== -1)) {
      function iOSversion() {
        if (/iP(hone|od|ad)/.test(navigator.platform)) {
          // supports iOS 2.0 and later
          var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
          return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
        }
      }
      var ver = iOSversion() || [0];

      var protocol = 'http://';
      if (ver[0] >= 6) {
        protocol = 'maps://';
      }
      window.location = protocol + 'maps.apple.com/maps?daddr=' + lat + ',' + lng + '&amp;ll=';
    }
    else {
      window.open('http://maps.google.com?daddr=' + lat + ',' + lng + '&amp;ll=');
    }
  }

এইচটিএমএল:

 <a onclick="navigate(31.046051,34.85161199999993)" >Israel</a>

10

এটি আমার জন্য সমস্ত ডিভাইস [আইওএস, অ্যান্ড্রয়েড এবং উইন্ডো মোবাইল 8.1] এ কাজ করে।

কোনওভাবেই সেরা উপায়ে দেখায় না ... তবে আরও সহজ হতে পারে না :)

<a href="bingmaps:?cp=18.551464~73.951399">
 <a href="http://maps.apple.com/maps?q=18.551464, 73.951399"> 
   Open Maps
 </a>
</a>

http://jsbin.com/dibeq


খুব পরিষ্কার এবং সহজ। একাধিক ডিভাইসে পরীক্ষা করুন। মসৃণ কাজ! আপনাকে অনেক ধন্যবাদ: ডি
lzoesch

তবে এটি কেবল আপেলের মানচিত্র খোলায়। আপনার অ্যান্ড্রয়েড ফোন থাকলে এত শীতল নয়।
সুপারলুমিনিয়ার

4
@ ক্রিস্টোফার - এবং এটি গুগল ম্যাপস অ্যাপটি খুলবে?
সুপারলুমিনারি

@ সুপারলুমিনারি প্রকৃতপক্ষে এটি অদ্ভুতভাবে করে।
ক্রিস্টোফার

স্থানাঙ্কের পরিবর্তে কোনও ঠিকানাতে পাস করার জন্য আপনি এটি কীভাবে ব্যবহার করবেন?
ভিনসেন্ট

6
if (navigator.geolocation) { //Checks if browser supports geolocation
navigator.geolocation.getCurrentPosition(function (position) {                                                                                            
 var latitude = position.coords.latitude;                    //users current
 var longitude = position.coords.longitude;                 //location
 var coords = new google.maps.LatLng(latitude, longitude); //Creates variable for map coordinates
 var directionsService = new google.maps.DirectionsService();
 var directionsDisplay = new google.maps.DirectionsRenderer();
 var mapOptions = //Sets map options
 {
   zoom: 15,  //Sets zoom level (0-21)
   center: coords, //zoom in on users location
   mapTypeControl: true, //allows you to select map type eg. map or satellite
   navigationControlOptions:
   {
     style: google.maps.NavigationControlStyle.SMALL //sets map controls size eg. zoom
   },
   mapTypeId: google.maps.MapTypeId.ROADMAP //sets type of map Options:ROADMAP, SATELLITE, HYBRID, TERRIAN
 };
 map = new google.maps.Map( /*creates Map variable*/ document.getElementById("map"),    mapOptions /*Creates a new map using the passed optional parameters in the mapOptions parameter.*/);
 directionsDisplay.setMap(map);
 directionsDisplay.setPanel(document.getElementById('panel'));
 var request = {
   origin: coords,
   destination: 'BT42 1FL',
   travelMode: google.maps.DirectionsTravelMode.DRIVING
 };

 directionsService.route(request, function (response, status) {
   if (status == google.maps.DirectionsStatus.OK) {
     directionsDisplay.setDirections(response);
   }
 });
 });
 }

4
এটি করার সত্যিই দুর্দান্ত উপায়টি না, তবে আমি যা চেয়েছিলাম তা পুরোপুরি নয়। আইডি বরং একটি অ্যাঙ্কর-ট্যাগ যুক্ত করতে চান, আরও কিছুই। যদি কোনও রুট নিজেই গুগল ম্যাপ তৈরি না করে এটি সম্ভব না হয় তবে তা জেনে রাখা ভাল। যাইহোক আপনাকে ধন্যবাদ, আপনি একটি উত্সাহ পেতে!
অ্যালেক্স

ঠিক আছে যদি আপনি কোনও সমাধান পান তবে আমাকে জানান
সুধারসন


2

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

আইওএস 5 এবং নিম্নে: http://maps.apple.com?q=xxxx

আইওএস 6 এবং এর উপরে: http://maps.google.com?q=xxxx

এবং এটি কেবল সাফারিতে। ক্রোম আপনাকে গুগল ম্যাপের ওয়েবপৃষ্ঠায় নিয়ে যাবে।

এর বাইরে আপনাকে এমন একটি ইউআরএল স্কিম ব্যবহার করতে হবে যা মূলত উদ্দেশ্যটি হারাবে কারণ কোনও অ্যান্ড্রয়েড সেই প্রোটোকলটি জানতে পারবে না।

আপনি জানতে চাইতে পারেন, সাফারি কেন মানচিত্র অ্যাপ্লিকেশনটি খোলে এবং ক্রোম আমাকে একটি ওয়েবপৃষ্ঠায় নিয়ে যায়?

ওয়েল, কারণ সাফারি অ্যাপল দ্বারা তৈরি ব্রাউজারে বিল্ড এবং উপরের ইউআরএল সনাক্ত করতে পারে। ক্রোম "কেবলমাত্র অন্য একটি অ্যাপ্লিকেশন" এবং আইওএস ইকোসিস্টেমটি মেনে চলতে হবে। এর জন্য অন্যান্য অ্যাপ্লিকেশনগুলির সাথে যোগাযোগের একমাত্র উপায় হ'ল ইউআরএল স্কিমগুলি ব্যবহার করে।


4
ঠিক আছে, যেমনটি আমি বলেছি, আইওএস মানচিত্রগুলি সনাক্ত করে: // প্রোটোকল এবং অ্যান্ড্রয়েড সরাসরি বর্তমান অবস্থানের মাধ্যমে মানচিত্র খোলায় তবে একটি সাধারণ গুগল মানচিত্রের ইউআরএল ব্যবহার করে, তাই আপনি যা বলেছেন তা ঠিক সঠিক নয় ..
অ্যালেক্স

1

উপর ভিত্তি করে ডকুমেন্টেশনorigin প্যারামিটার ঐচ্ছিক এবং ব্যবহারকারীর অবস্থান থেকে এটি অক্ষমতা।

... Defaults to most relevant starting location, such as user location, if available. If none, the resulting map may provide a blank form to allow a user to enter the origin....

প্রাক্তন: https://www.google.com/maps/dir/?api=1&destination=Pike+Place+Market+Seattle+WA&travelmode=bicycling

আমার জন্য এটি ডেস্কটপ, আইওএস এবং অ্যান্ড্রয়েডে কাজ করে।


1

ইউআরএল সিনট্যাক্সটি ব্যবহৃত প্ল্যাটফর্ম নির্বিশেষে একই

String url = "https://www.google.com/maps/search/?api=1&query=" + latitude + ","+ 
longitude;

অ্যান্ড্রয়েড বা আইওএসে ইউআরএল মানচিত্র অ্যাপে গুগল ম্যাপস চালু করে, যদি গুগল ম্যাপস অ্যাপ্লিকেশন ইনস্টল না করা থাকে তবে ইউআরএল একটি ব্রাউজারে গুগল ম্যাপস চালু করে এবং অনুরোধকৃত ক্রিয়া সম্পাদন করে।

অন্য কোনও ডিভাইসে, ইউআরএল একটি ব্রাউজারে গুগল ম্যাপস চালু করে এবং অনুরোধকৃত ক্রিয়া সম্পাদন করে।

অফিসিয়াল ডকুমেন্টেশনের জন্য এখানে লিঙ্কটি https://developers.google.com/maps/docamentation/urls/guide


0

আমি দেখতে পেলাম যে এটি বোর্ড জুড়ে কাজ করে:

<a href="https://www.google.com/maps/place/1+Fake+Street,+City+Province/State>Get Directions</a>

ডেস্কটপ / ল্যাপটপের জন্য ব্যবহারকারীর সেই মানচিত্রটি লোড হওয়ার পরে দিকনির্দেশগুলি ক্লিক করতে হবে, তবে আমার পরীক্ষার থেকে সমস্ত মোবাইল ডিভাইস কোনও লিঙ্ক ছাড়াই সেই লিঙ্কটি গুগল ম্যাপ অ্যাপে লোড করবে।


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