2016-01-08 39 views
6

İki konum arasındaki yolu göstermeye çalışıyorum ama doğru değil. Gördüğünüz gibiGoogle haritası SDK - Yol doğru değil

enter image description here

, mavi çizgi (yol) hedefe gitmez:

if(center.latitude != 0 && center.longitude != 0) 
      { 
      NSString *urlString = [NSString stringWithFormat: 
            @"%@?origin=%f,%f&destination=%f,%f&sensor=true&key=%@", 
            @"https://maps.googleapis.com/maps/api/directions/json", 
            center.latitude, 
            center.longitude, 
            center1.latitude, 
            center1.longitude, 
            KGoogleMapServerKey]; 

      NSError *error; 
       NSDictionary *json =[NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString] options:NSDataReadingUncached error:&error] options:NSJSONReadingMutableContainers error:&error]; 
      if(json[@"routes"] != nil && [json[@"routes"] count] > 0) 
      { 
       GMSPath *path =[GMSPath pathFromEncodedPath:json[@"routes"][0][@"overview_polyline"][@"points"]]; 
       GMSPolyline *singleLine = [GMSPolyline polylineWithPath:path]; 
       singleLine.strokeWidth = 7; 
       singleLine.strokeColor = [UIColor colorWithRed:56.0/255.0 green:163.0/255.0 blue:249.0/255.0 alpha:1.0]; 
       singleLine.map = mapViewGoogle; 
      } 

Bu

alıyorum yoludur.
Bunu nasıl düzeltebilirim?

+0


Google hiçbir yol yoktur yüzünden, hedefe ulaşmak için nasıl bilmiyor düşünüyorum veya alana, böyle bir şey yoktur. – wf9a5m75

cevap

5

Rotanız çok uzun. Google Yol Tarifi API'sinin her bir yanıtında puan sayısı sınırlıdır. Örneğinizde N puanı aldınız, onlarla rota çizdiler ve haritayı sadece dört noktanın yerleştirildiği bölgeye göre yakınlaştırın.
Her zaman doğru rotayı görüntülemek için her haritadan sonra rotayı yeniden hesaplamanız gerekir (rotayı aynı tutmak için orta noktaları dahil).
Örneğin, ekranınızda rotası rotanızda 50 nokta var. Haritayı yakınlaştırıyorsunuz, sadece 4 puan görüntüleniyor (ekran görüntüsünüz). Şimdi # 1, başlangıç ​​olarak # 5, # 2 # 3 # 4 ve orta nokta olarak alın ve bu noktalar için rota bulmak için yeni istek gönderin. Yeni 50 puan alacaksınız ve onlarla birlikte rotanın bu kısmını daha doğru çizebilirsiniz.
enter image description here

+0

Bu haklı görünüyor. Teşekkürler – Nitish

1

bu nokta burada görebileceğiniz gibi, bu hedef için bir yol olmasıdır: Ben en iyi bahis GMaps zaten kullandıkları aynı yaklaşımı kullanmak olduğunu tahmin Gmap of your Example

i noktalı kullanarak demek/Son noktadan kesikli polyline gerçek noktaya yönler olsun.

Sen ise poligonun senin tipini uygulamak out burada birkaç örnek bulabilirsiniz:

Creating a dashed using IOS SDK

+0

Bu doğruysa, Google haritaları neden yolu doğru şekilde gösteriyor? [** web **] (https://www.google.co.in/maps/dir/Vju+AS,+Skreddermoen+35,+4513 + Mandal + Norveç/Storgata + 2 + 0155 + Oslo, Norveç +/@ 59.9082978,10.7358573,13z/veri = 4m14 4m13 1M5 1M1 1s0x46378e55431b5435:!!! 0x306f6da1490b5f7b 2m2 1d7.4111312 2d58.0184825!! 1m5! 1m1! 1s0x46416e627216c757: 0xd7785d6e9ecf2c43! 2m2! 1d10.7483587! 2d59.9127025! 3e0? Hl = tr)? – Nitish