{ "id": "109989", "key": "TIMOB-12810", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "15397", "description": "2013 Soprint 07 API", "name": "2013 Sprint 07 API", "archived": true, "released": true, "releaseDate": "2013-04-08" }, { "id": "15105", "description": "2013 Sprint 07", "name": "2013 Sprint 07", "archived": true, "released": true, "releaseDate": "2013-04-08" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-04-04T17:08:41.000+0000", "created": "2013-02-21T20:24:13.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "mapv2", "parity", "qe-testadded" ], "versions": [], "issuelinks": [ { "id": "27339", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "id": "112199", "key": "TIDOC-1105", "fields": { "summary": "Guides: Update Maps v2 guide for API changes and new features", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "26725", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "110858", "key": "TIMOB-13005", "fields": { "summary": "Android: Maps V2 module - setLocation runtime error", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "26726", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "110859", "key": "TIMOB-13006", "fields": { "summary": "Android: Maps V2 Module - image for a button on the annotation not showing up", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "36962", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "84960", "key": "TIMOB-7207", "fields": { "summary": "Android: Add support for map annotation bubble to be a custom view", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "27083", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "110549", "key": "TIMOB-13100", "fields": { "summary": "Android: Maps V2 Module - Annotation click event not triggered", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } }, { "id": "27624", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "112589", "key": "TIMOB-13498", "fields": { "summary": "Android: Map Module v2 throws an UnsatisfiedLinkError on releases minor than 3.1", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2014-05-04T05:53:24.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": "10202", "name": "Android", "description": "Android Platform" } ], "description": "The following API items are not accessible by the Google Maps v2 module, but are available with the Ti.Map module.\r\n\r\nThe View Class is missing the setLocation and zoom methods.\r\n* http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Map.View-method-setLocation\r\n* http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Map.View-method-zoom\r\n\r\nThe Annotation class is missing the leftButton, leftView, rightButton, rightView, subtitleid and titleid properties.\r\n\r\n", "attachment": [ { "id": "36835", "filename": "applogo.png", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-29T22:11:15.000+0000", "size": 5574, "mimeType": "image/png" }, { "id": "36836", "filename": "face_happy.png", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-29T22:11:15.000+0000", "size": 37307, "mimeType": "image/png" }, { "id": "36837", "filename": "face_ok.png", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-29T22:11:15.000+0000", "size": 35114, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Maps V2 Module - Missing properties and methods from Ti.Map module", "creator": { "name": "bhatfield", "key": "bhatfield", "displayName": "Benjamin Hatfield", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "bhatfield", "key": "bhatfield", "displayName": "Benjamin Hatfield", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Mac OS X 10.7.5\r\nTitanium SDK version: 3.1.0 (02/11/13 17:10 68a0fef)\r\nti.map 2.0 module\r\nAndroid 4.2\r\nNexus 4", "comment": { "comments": [ { "id": "244725", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Test case (the images are attached in the ticket):\r\n{code}\r\nvar MapModule = require('ti.map');\r\n\r\nvar win = Ti.UI.createWindow({fullscreen: false, layout: \"vertical\"});\r\nvar myView1 = Ti.UI.createView({\r\n width:Ti.UI.SIZE,\r\n height:Ti.UI.SIZE,\r\n backgroundColor:'red'\r\n});\r\n \r\nvar label = Ti.UI.createLabel({\r\n text:\" $400K \",\r\n font:{fontSize:30, fontWeight:\"bold\", fontStyle:\"italic\"}\r\n});\r\n\r\nmyView1.add(label);\r\n\r\n\r\nvar rightView = Ti.UI.createLabel({\r\n text:\"LABEL\"\r\n});\r\n\r\nvar anno = MapModule.createAnnotation({\r\n\tlatitude : -33.87365,\r\n\tcustomView : myView1,\r\n\tlongitude : 151.20689,\r\n\ttitle : \"Drag Me\",\r\n\tsubtitle : \"Sydney is quite chill\",\r\n\tdraggable : true\r\n});\r\nvar anno2 = MapModule.createAnnotation({\r\n\tlatitude : -33.86365,\r\n\timage : \"applogo.png\",\r\n\tlongitude : 151.21689,\r\n\ttitle : \"Drag Me 2\",\r\n\tsubtitle : \"This is anno2\",\r\n\tleftButton: \"face_happy.png\",\r\n\trightView: rightView,\r\n\tdraggable : true\r\n});\r\nvar anno3 = MapModule.createAnnotation({\r\n\tlatitude : -33.85365,\r\n\tpincolor : MapModule.ANNOTATION_BLUE,\r\n\tlongitude : 151.20689,\r\n\ttitle : \"anno3\",\r\n\tsubtitle : \"This is anno3\",\r\n\trightButton: \"face_ok.png\",\r\n\tdraggable : false\r\n});\r\n\r\nvar map = MapModule.createView({\r\n\tenableZoomControls: false,\r\n\t//userLocation: false,\r\n\tmapType: MapModule.NORMAL_TYPE,\r\n\tanimate: true,\r\n\tannotations: [anno, anno2, anno3],\r\n\tregion: {latitude: -33.87365, longitude: 151.20689, latitudeDelta: 0.1, longitudeDelta: 0.1 } //Sydney\r\n});\r\n\r\nmap.setLocation({latitude: 0, longitude: 0});\r\n\r\nmap.addEventListener('pinchangedragstate', function(e) {\r\n\tTi.API.info(e.title + \": newState=\" + e.newState + \", lat=\" + e.annotation.latitude + \", lon=\" + e.annotation.longitude);\r\n});\r\n\r\nmap.addEventListener('click', function(e) {\r\n\tTi.API.info(\"Click \" + e.title + \": clicksource=\" + e.clicksource + \", lat=\" + e.annotation.latitude + \", lon=\" + e.annotation.longitude);\r\n});\r\n\r\nvar b1 = Ti.UI.createButton({\r\n\ttitle: \"Toggle draggable for anno3\"\r\n});\r\nb1.addEventListener('click', function(){\r\n\tanno3.draggable = !anno3.draggable;\r\n\tTi.API.info(\"anno3.draggable = \" + anno3.draggable);\r\n});\r\n\r\nvar b2 = Ti.UI.createButton({\r\n\ttitle: \"Toggle enableZoomControls for map\"\r\n});\r\nb2.addEventListener('click', function(){\r\n\tmap.enableZoomControls = !map.enableZoomControls;\r\n\tTi.API.info(\"map.enableZoomControls = \" + map.enableZoomControls);\r\n});\r\n\r\nvar b3 = Ti.UI.createButton({\r\n\ttitle: \"Change properties for anno2 (title and left pane should be changed)\"\r\n});\r\nvar i = 0;\r\nb3.addEventListener('click', function(){\r\n\tTi.API.info(anno2.leftButton);\r\n\tif (anno2.leftButton != null) {\r\n\t\tanno2.leftButton = null;\r\n\t} else {\r\n\t\tanno2.leftButton = \"face_happy.png\"\r\n\t}\r\n\tTi.API.info(anno2.leftButton);\r\n\tanno2.leftView = Ti.UI.createLabel({\r\n \ttext:\"NEW LABEL: \" + i\r\n\t});\r\n\tanno2.title = \"New anno2: \" + i;\r\n\ti++;\r\n});\r\n\r\nvar b4 = Ti.UI.createButton({\r\n\ttitle: \"Zoom in/out\"\r\n});\r\nvar zoomLevel = 1;\r\nb4.addEventListener('click', function(){\r\n\tmap.zoom(zoomLevel);\r\n\tTi.API.info(\"Zoom in / out with level = \" + zoomLevel);\r\n\tzoomLevel = -zoomLevel;\r\n});\r\n\r\nvar b5 = Ti.UI.createButton({\r\n\ttitle: \"setLocation\"\r\n});\r\nvar zoomLevel = 1;\r\nb5.addEventListener('click', function(){\r\n\tmap.setLocation({\r\n\t\tanimate: false,\r\n\t\tlatitude: -33.97365,\r\n\t\tlongitude: 151.30689,\r\n\t\tlatitudeDelta: 0.2,\r\n\t\tlongitudeDelta: 0.2\r\n\t});\r\n});\r\n\r\nwin.add(b1);\r\nwin.add(b2);\r\nwin.add(b3);\r\nwin.add(b4);\r\nwin.add(b5);\r\nwin.add(map);\r\nwin.open();\r\n{code}\r\nSteps for FR:\r\n1. Run the above test case.\r\n2. Click the annotation and info window. Check the log to make sure the \"clicksource\" is correct. Should be one of `pin`, `title`, `subtitle`, `leftPane`, `rightPane`, `infoWindow` or `null`. Please test on different devices with different resolutions.\r\n3. Click the button \"Change properties for anno2\". Deselect and select anno2 to see the change of title and left pane.\r\n4. Click the button \"Zoom in/out\" to see the map is zoomed in/out.\r\n5. Click the button \"setLocation\" to see the map location is changed.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-29T22:05:30.000+0000", "updated": "2013-03-29T22:13:50.000+0000" }, { "id": "244726", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/4061 (3_1_X PR: https://github.com/appcelerator/titanium_mobile/pull/4077)\r\nPR: https://github.com/appcelerator/titanium_modules/pull/95", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-29T22:10:01.000+0000", "updated": "2013-04-04T17:10:49.000+0000" }, { "id": "246358", "author": { "name": "tlsg", "key": "tlsg", "displayName": "Tommy Leung", "active": true, "timeZone": "America/New_York" }, "body": "It still seems to be missing \"longitudeDelta\" and \"latitidueDelta\" properties on the \"regionchanged\" event. Without it, it's impossible to calculate the current lat/lon area (box) the user is currenlty viewing.", "updateAuthor": { "name": "tlsg", "key": "tlsg", "displayName": "Tommy Leung", "active": true, "timeZone": "America/New_York" }, "created": "2013-04-08T03:03:53.000+0000", "updated": "2013-04-08T03:03:53.000+0000" }, { "id": "246937", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Tommy, TIMOB-13516 is created for the missing \"longitudeDelta\" and \"latitidueDelta\" properties on the \"regionchanged\" event.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-10T20:55:10.000+0000", "updated": "2013-04-10T20:55:10.000+0000" }, { "id": "272634", "author": { "name": "djha", "key": "djha", "displayName": "Dhirendra Jha", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Environment:\nAppcelerator Studio: 3.1.3.201309132456\nSDK: 3.1.3.GA\nacs: 1.0.6\nalloy: 1.2.2\ntitanium: 3.1.2\ntitanium-code-processor: 1.0.3\nXcode: 5\nDevice: Nexus 7 (4.3)\nResult - Used the above code, followed the same steps. Now its working fine with all the expected output. Hence closing this issue.", "updateAuthor": { "name": "djha", "key": "djha", "displayName": "Dhirendra Jha", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-24T09:59:59.000+0000", "updated": "2013-09-24T09:59:59.000+0000" }, { "id": "303416", "author": { "name": "madrobots", "key": "madrobots", "displayName": "Thierry Ruiz", "active": true, "timeZone": "Australia/Brisbane" }, "body": "According the doc (http://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-event-longclick)\r\n\r\n1. longclick() is only for Android and return Lat & Long\r\n2. longpress() has disappeared but can still be used in a iOS app. However it returns X and Y (pixel) of the map\r\n\r\nIt would be great to uniform this a little bit more.\r\n\r\n\r\n\r\nTested with: Module.Map 2.1.4 (latest) and Titanium 3.2.3GA\r\n\r\n------\r\n\r\nfunction map_longClick(e) {\r\n\r\n if(OS_IOS){\r\n var coordinate = convertPixeltoLatLng(e.x, e.y);\r\n }\r\n \r\n if(OS_ANDROID){\r\n var coordinate = {latitude: e.latitude, longitude: e.longitude};\r\n }\r\n \r\n var a = MAP.api.createAnnotation({\r\n latitude: coordinate.latitude,\r\n longitude: coordinate.longitude,\r\n title: \"New Place\",\r\n pincolor: MAP.api.ANNOTATION_GREEN,\r\n animate: true,\r\n draggable: true\r\n });\r\n\r\n MAP.mapView.addAnnotation(a);\r\n}\r\n\r\nfunction convertPixeltoLatLng(x, y) {\r\n var region = MAP.mapView.actualRegion || MAP.mapView.region;\r\n \r\n MAP.log(\"debug\",\"convertPixeltoLatLng > \"+JSON.stringify(region));\r\n \r\n var widthInPixels = MAP.mapView.rect.width;\r\n var heightInPixels = MAP.mapView.rect.height;\r\n\r\n var heightDegPerPixel = -region.latitudeDelta / heightInPixels;\r\n var widthDegPerPixel = region.longitudeDelta / widthInPixels;\r\n\r\n coordinates = {\r\n latitude: (y - heightInPixels / 2) * heightDegPerPixel + region.latitude,\r\n longitude: (x - widthInPixels / 2) * widthDegPerPixel + region.longitude\r\n };\r\n\r\n return coordinates;\r\n },\r\n\r\n\r\n\r\n\r\n\r\n", "updateAuthor": { "name": "madrobots", "key": "madrobots", "displayName": "Thierry Ruiz", "active": true, "timeZone": "Australia/Brisbane" }, "created": "2014-05-04T05:53:24.000+0000", "updated": "2014-05-04T05:53:24.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }