{ "id": "63447", "key": "MOD-2426", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10034", "key": "MOD", "name": "Appcelerator Modules", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20187", "name": "Release 7.4.0", "archived": false, "released": false } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-05-29T15:28:11.000+0000", "created": "2011-04-15T03:30:17.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "android", "clustering", "feature", "maps", "mapview", "ti.map" ], "versions": [], "issuelinks": [ { "id": "56307", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "171081", "key": "AC-5590", "fields": { "summary": "Map clustering for Android ", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2018-08-06T17:57:53.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13700", "name": "Map" } ], "description": "Ti needs a way to easily cluster markers within the native MapView used in [Ti.Map|https://github.com/appcelerator-modules/ti.map].", "attachment": [], "flagged": false, "summary": "Ti.Map: Android - Marker Clustering", "creator": { "name": "ian(atiantearle)", "key": "ian(atiantearle)", "displayName": "ian (at iantearle)", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rpfeiffer", "key": "rpfeiffer", "displayName": "Ralf Pfeiffer", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "368426", "author": { "name": "zarirbhesania@gmail.com", "key": "zarirbhesania@gmail.com", "displayName": "Zarir Bhesania", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is a commonly used feature in Map. Please include it for iOS and Android", "updateAuthor": { "name": "zarirbhesania@gmail.com", "key": "zarirbhesania@gmail.com", "displayName": "Zarir Bhesania", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-10-30T08:39:45.000+0000", "updated": "2015-10-30T08:39:45.000+0000" }, { "id": "373896", "author": { "name": "benutzername", "key": "benutzername", "displayName": "Sebastian Klaus", "active": true, "timeZone": "Europe/Berlin" }, "body": "+1", "updateAuthor": { "name": "benutzername", "key": "benutzername", "displayName": "Sebastian Klaus", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-01-06T08:37:42.000+0000", "updated": "2016-01-06T08:37:42.000+0000" }, { "id": "375527", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "There is an experimental support for iOS clustering using Google Maps available [here|https://github.com/hansemannn/Ti.GoogleMaps/tree/clustering]. \r\n\r\nFor Ti.Map:\r\n- iOS: As far as I know, MapKit (which is used by ti.map iOS) does not have an API for clustering, there are only 3rd-party solutions / algorithms available.\r\n- Android: There is an [API|https://developers.google.com/maps/documentation/android-api/utility/marker-clustering?hl=en] by Google Maps (which is used by ti.map Android) that could be implemented. If someone from the community is interesting in contributing this functionality, feel free to create a pull request!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-01-30T14:08:10.000+0000", "updated": "2016-01-30T14:10:04.000+0000" }, { "id": "376206", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Update on this feature: I just implemented a proof of concept of iOS MKMapKit annotation clustering. It uses the native FBAnnotationClustering library to group the annotations. The result can be found here: https://github.com/hansemannn/ti.map/tree/Clustering. Note: This feature is still very experimental, I tested it using 10000 annotations using this demo:\r\n{code:javascript}\r\nvar map = require(\"ti.map\");\r\nvar mapView = map.createView({\r\n clusterCellSizeFactor: 0.5,\r\n clusterTintColor: \"red\"\r\n clusterTextColor: \"white\"\r\n});\r\nvar annotations = [];\r\n\r\nfor(var i = 0; i < 10000;i++) {\r\n annotations.push(map.createAnnotation({\r\n latitude: 52.695348 +i,\r\n longitude: 7.299401 + Math.sin(i),\r\n title: \"Annotation\"\r\n }));\r\n}\r\n\r\nmapView.setAnnotations(annotations);\r\nmapView.cluster();\r\n\r\nvar window = Ti.UI.createWindow();\r\nwindow.add(mapView);\r\nwindow.open();\r\n{code}\r\n\r\nWe may can consider to bring this into the master branch some time, but not without the Android equivalent.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-08T00:38:20.000+0000", "updated": "2016-02-08T09:04:40.000+0000" }, { "id": "376211", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Added some more functionality and docs, so everyone who already needs the functionality can grab it from this PR: https://github.com/appcelerator-modules/ti.map/pull/149", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-08T09:03:48.000+0000", "updated": "2016-02-08T09:03:48.000+0000" }, { "id": "376332", "author": { "name": "benutzername", "key": "benutzername", "displayName": "Sebastian Klaus", "active": true, "timeZone": "Europe/Berlin" }, "body": "I tried your cluster branch, but on mapView.cluster(), all pins are gone and no cluster marker appear.", "updateAuthor": { "name": "benutzername", "key": "benutzername", "displayName": "Sebastian Klaus", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-09T12:58:27.000+0000", "updated": "2016-02-09T12:58:27.000+0000" }, { "id": "376395", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Interesting, can you provide a demo to reproduce? Also, are you using custom pins and/or overlays? Early tests have only been done with \"native\" pins.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-02-09T22:52:56.000+0000", "updated": "2016-02-09T22:52:56.000+0000" }, { "id": "417582", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Side note: Stable clustering is also available in [Ti.GoogleMaps|https://github.com/hansemannn/ti.googlemaps/] for the ones interested!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-04-18T14:45:00.000+0000", "updated": "2017-04-18T14:45:00.000+0000" }, { "id": "421076", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "iOS 11 finally supports native clustering! This could be considered for Ti.Map on both iOS and Android by now.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-06T11:28:11.000+0000", "updated": "2017-06-06T11:28:11.000+0000" }, { "id": "427978", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "Started a fork for Ti.Map Android at https://github.com/m1ga/ti.map/tree/cluster\r\nThe click-events are not working (infobox) but the clustering is handled by {{android-maps-utils-release.aar}}", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-09-17T13:20:20.000+0000", "updated": "2017-09-17T13:20:20.000+0000" }, { "id": "429032", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "The iOS-part is now merged and part of Ti.Map iOS 3.0.0. Android will likely follow once the review-comments are cleared.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-12T16:41:01.000+0000", "updated": "2017-10-12T16:41:01.000+0000" }, { "id": "437945", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (community, thanks to [~michael]): https://github.com/appcelerator-modules/ti.map/pull/215", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-05-25T10:10:07.000+0000", "updated": "2018-05-25T10:10:07.000+0000" }, { "id": "437984", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "All PR's merged. New release available: https://github.com/appcelerator-modules/ti.map/releases/tag/android-4.3.0", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-05-29T15:28:11.000+0000", "updated": "2018-05-29T15:28:11.000+0000" }, { "id": "440506", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Cleaning up older fixed tickets from 2016 and earlier. If this ticket should not have been closed, please reopen it.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:57:53.000+0000", "updated": "2018-08-06T17:57:53.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }