Bir tablo görünümü hücresinde Google haritalarını Google ile görüntülerken bir sorunla karşı karşıyayım. Buna göre check in (Enlem ve Boylam) tablosunu görüntülemek istiyorum. Tablo görünümünde google haritasını görüntülemek istiyorum. Kullanılabilir konum yoksa, boşluğum olacağı anlamına gelirse, sunucudan enlem ve boylamı alacağım. Yani, bir senaryoda, doğru alıyorum, ancak en üst seviyeyi yeniden yüklerken, onların enlem ve boylamı null olduğunda nerede ve nerede haritalandırıyorum. Lütfen bana yol göster.Google Map in TableView
cevap
Harita görünümü, örnek oluşturmak için pahalı bir görünümdür. dequeueReusableCellWithIdentifier
kullanırken bile, çok sayıda öğeyle birlikte kaynak ağır olacaktır.
Enlem/boylam kombinasyonunuzdan statik bir harita görüntüsü oluşturmanın bir yolunu kullanmanın en iyi yol olduğuna inanıyorum.
Sen bir göz here alabilir ve kolayca örneğin gibi statik bir görüntü haritası için Google gibi birçok popüler harita sağlayıcılarından için bir API çağrısı nasıl oluştuğunu görebilirsiniz: Ayrıca
bahsetmemiz Bu sağlayıcılardan bazılarının sınırlamaları olabilir (Google'ın yüksek trafik durumunda bir API anahtarına ihtiyacı olabilir). Bu yüzden bazı araştırmalardan sonra akıllıca seçin. Eğer iki konuyu
1) Zaten
2) Performans sorunu (Gerçi Burada sözü edilmeyen)
biri "veri nil bile Haritası görünen" sözü karşı karşıya gibi
Elma haritası hakkında ne? –
Muhtemelen 'MKMapSnapshotter' kullanabilirsiniz. Anlık görüntü ve bunun gibi şeyler için bölge gibi bazı seçeneklere ihtiyaç duyar ve size bir çıkış için bir UIImage verir. IOS 7 ve üstü için kullanılabilir ve ayrıca senkronize olmayan bir şekilde çalışır. –
Yorum için teşekkürler, ama zaten yapmıştım. –
görünüyor Birincisi hücrenin deforme olmasından kaynaklanmaktadır. Tabloyu yeniden yüklediğinizde, hücre yeniden kullanılır (Yeniden oluşturulmaz). Orada istenmeyen harita olsun neden
harita görüntüsü hücre getiriyi elde edebilir
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
satır için hücreyi iade
, olmasıdır. Bunu önlemek için sıfır yapmalısın.2:
performans, onun a değil her hücrede MapView göstermenin doğru bir yaklaşım geldiğinde. Alternatif bir yaklaşım
kullanacağım Eğer tembel örneğini ve programlı Google Harita görünümü eklemek isteyebilirsiniz gibi geliyor bu
let mapUrl: String = NSURL(string:"YourMapURL")
let mapImage = UIImage.imageWithData(NSData.dataWithContentsOfURL(mapUrl))
let latitude:Double = 17.3850
let longitude:Double = 78.4867
let imageURL = NSURL(string: "http://maps.googleapis.com/maps/api/staticmap?center=\(latitude),\(longitude)&zoom=12&scale=false&size=600x300&maptype=roadmap&format=png&visual_refresh=true")
let imagedData = NSData(contentsOfURL: imageURL!)!
staticMapImgView.image = UIImage(data: imagedData)
Elma haritası hakkında ne var? –
haritanızın url dışına imajını yapmaktır. 'dequeueReusableCell' size zaten haritaya sahip olan hücreleri verebilir. Bununla birlikte, ne sorduğunuzu çok açık olup olmadığını bilmiyorum ve aynı zamanda bu pahalı görüşlerin çoğunu oluşturmaya karşı da dikkatli olacağım. Belki de kullanıcıların görmesini istediğiniz konumu gösteren statik görüntüler oluşturmayı içeren bir çözüm var. –