Ich habe ein Problem beim Anzeigen von Google Maps in einer Tabellenansicht Zelle mit Swift. Ich möchte das Einchecken (Breiten- und Längengrad) basierend darauf anzeigen. Ich möchte Google Maps in der Tabellenansicht anzeigen. Ich werde Breiten- und Längengrad vom Server, wenn kein Standort verfügbar ist, bedeutet, dass ich null erhalten werde. Also, in einem Szenario werde ich richtig, aber während ich die oberste Ebene neu einlade, bekomme ich eine Karte, wann und wo ihre Breite und Länge ebenfalls null ist. Bitte führen Sie mich.Google Map in TabelleView
Antwort
Eine Kartenansicht ist eine teure Ansicht instanziieren. Selbst wenn Sie dequeueReusableCellWithIdentifier
verwenden, ist es immer noch ressourcenintensiv mit einer großen Anzahl von Elementen.
Ich glaube, dass es am besten ist, einen Weg zu verwenden, um ein statisches Kartenbild aus Ihrer Kombination aus Längen- und Breitengrad zu erstellen.
können Sie einen Blick here und Sie können sehen, wie man leicht einen API-Aufruf zu vielen beliebten Kartenanbietern wie Google für ein statisches Bild Karte konstruieren, wie zum Beispiel:
Ebenfalls erwähnenswert dass einige dieser Anbieter Einschränkungen haben (wie Google könnte bei hohem Datenverkehr einen API-Schlüssel benötigen). Also wähle weise nach etwas Recherche.
was ist mit apple map? –
Sie können wahrscheinlich 'MKMapSnapshotter' verwenden. Es braucht einige Optionen wie die Region zu Snapshot und so etwas und es wird Ihnen ein UIImage für eine Ausgabe geben. Es ist für iOS 7 und höher verfügbar und funktioniert auch asynchron. –
danke für den Kommentar, aber ich hatte es schon getan. –
Sieht aus wie Sie sind zwei Fragen, mit denen
1) bereits erwähnt eine „Karte erscheint auch, wenn die Daten gleich Null ist“
2) Performance Ausgabe (Es ist nicht hier allerdings erwähnt)
Die der erste ist wegen der Entbindung der Zelle. Wenn Sie die Tabelle erneut laden, wird die Zelle wiederverwendet (nicht neu erstellt).
Wenn Sie Ihre Zelle für Zeile zurückgeben in
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
die Zelle mit Kartenansicht dafür bekommen können, weshalb Sie unerwünschte Karte dorthin zu gelangen. Sie sollten es Null machen, um dies zu verhindern.
2:
Wenn kam, um die Leistung, es ist einem nicht der richtige Ansatz mapview in jeder Zelle zu zeigen. Ein alternativer Ansatz ist Bild aus Ihrer Karte URL
Verwendung dieses
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)
was ist mit Apple Map? –
- 1. Auto-Layout in TabelleView
- 2. Warnung in Google Map
- 3. Efficient Map Overlays in Android Google Map
- 4. Google Map flackert in iOS
- 5. Google Map Lite in CardView
- 6. Problem in Google Map API ...!
- 7. Google Map in AngularJS initialisieren
- 8. Google map Implementierung in Iphone
- 9. Postleitzahlen in Radius Google Map
- 10. Google Map in mobilen Geräten
- 11. Google Map-Schlüssel in Android?
- 12. Google Map Directions in android
- 13. Diskrepanzen zwischen Google Map Search und Google Map API
- 14. Google Map Version
- 15. google map Konsole Fehler
- 16. Google Map Kamera Standort
- 17. Google Map Integration probleme
- 18. Google Map Theme Styling
- 19. Google Map Modal Ausgabe
- 20. Vollbild Google Map
- 21. Google map customizations
- 22. Google Map ersetzen?
- 23. Google Map nicht angezeigt
- 24. Google Map mit Standardrichtung
- 25. Kreisdiagramm auf Google Map
- 26. Google Map Zeichnung freihändig
- 27. Google Map Marker Arrow
- 28. Google Map Einfache Polylinie Map to image
- 29. Google Map referer-not-allowed-map-Fehler
- 30. Google Map Fehler 602
Es klingt zu machen, wie Sie wollen, faul könnte instanziiert und die Google Map-Ansicht programmatisch einzufügen. 'dequeueReusableCell' kann Ihnen Zellen geben, die die Map bereits instanziiert haben. Ich weiß jedoch nicht, ob es sehr klar ist, was Sie fragen, und ich warne auch davor, zu viele dieser teuren Ansichten zu instanziieren. Vielleicht gibt es eine Lösung, bei der statische Bilder erzeugt werden, die den Ort zeigen, den die Benutzer sehen sollen. –