Fixed
Status Update
Comments
ja...@gmail.com <ja...@gmail.com> #3
Can you please supply a short reproduction case? I can't quite see how to reproduce the issue you are seeing, and I have to be able to reproduce it to get engineering to fix it. Thanks!
pa...@gtempaccount.com <pa...@gtempaccount.com> #4
Sure,
1. A simple viewController is shown to the user
2. The user selects an image from the device gallery
2. The South West and North East coordinate bounds are indicated.
3. The rotation is also set
4. The code below is used to show the selected image on the map with rotation.
override func showImageOnMap() {
var southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
var northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
var overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)
// Image from Gallery. The image to be shown is taken from the device gallery
// This short example does not show the procedure to take the image from the
// gallery
var icon = UIImageFromGallery()
var overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
mapView.clear()
overlay.bearing = 47.554
overlay.map = mapView
}
The result is shown in Screenshot_iOS.png.
Let me also indicate that I follow the same procedure in a Android device (using Android API) and the result is the expected one as it is shown in the image attached (Screenshot_Android.png). The image is correctly rotated keeping the relation aspect. Comparing the two screenshots, you can see the effect I am indicating in this issue.
Let me know if you require more information to reproduce the issue
1. A simple viewController is shown to the user
2. The user selects an image from the device gallery
2. The South West and North East coordinate bounds are indicated.
3. The rotation is also set
4. The code below is used to show the selected image on the map with rotation.
override func showImageOnMap() {
var southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
var northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
var overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)
// Image from Gallery. The image to be shown is taken from the device gallery
// This short example does not show the procedure to take the image from the
// gallery
var icon = UIImageFromGallery()
var overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
mapView.clear()
overlay.bearing = 47.554
overlay.map = mapView
}
The result is shown in Screenshot_iOS.png.
Let me also indicate that I follow the same procedure in a Android device (using Android API) and the result is the expected one as it is shown in the image attached (Screenshot_Android.png). The image is correctly rotated keeping the relation aspect. Comparing the two screenshots, you can see the effect I am indicating in this issue.
Let me know if you require more information to reproduce the issue
hy...@gmail.com <hy...@gmail.com> #5
I'm attempting to replicate this issue given your sample code, but I'm not seeing it.
I've put up my repro code athttps://github.com/domesticmouse/DistortedGMSGroundOverlay
Please modify this sample until you get the distortion, and then create a Pull Request back to me.
Thanks!
I've put up my repro code at
Please modify this sample until you get the distortion, and then create a Pull Request back to me.
Thanks!
ga...@gmail.com <ga...@gmail.com> #6
I have used the same image and bounds you used, and I can not reproduce the distort.
Let me extend the information about this App.
The idea is to put an indoor map images on the google map. In order to do that, first of all, we use the google earth PC tool to discover the South West Bound, the North East Bound and the rotation to be applied over the image.
Once all these information is get, (1) we copy the image in the iOS device, (2) we take the image in our App from the iOS gallery, and (3) we configure the bounds and the rotation with the information indicated before.
However, using the image I required in my Project (Map.jpg attached), and the coordinates and rotation obtained (see below), I can reproduce the distort.
var southWest = CLLocationCoordinate2DMake(38.963203,-77.380171)
var northEast = CLLocationCoordinate2DMake(38.963641,-77.379883)
overlay.bearing = 47.907
I also attach an screenshot of google earth showing how I would like to see the image on my App using the API.
Could you please use the image (Map.jpg) I attach using the coordinates and rotation indicated?
Let me extend the information about this App.
The idea is to put an indoor map images on the google map. In order to do that, first of all, we use the google earth PC tool to discover the South West Bound, the North East Bound and the rotation to be applied over the image.
Once all these information is get, (1) we copy the image in the iOS device, (2) we take the image in our App from the iOS gallery, and (3) we configure the bounds and the rotation with the information indicated before.
However, using the image I required in my Project (Map.jpg attached), and the coordinates and rotation obtained (see below), I can reproduce the distort.
var southWest = CLLocationCoordinate2DMake(38.963203,-77.380171)
var northEast = CLLocationCoordinate2DMake(38.963641,-77.379883)
overlay.bearing = 47.907
I also attach an screenshot of google earth showing how I would like to see the image on my App using the API.
Could you please use the image (Map.jpg) I attach using the coordinates and rotation indicated?
zs...@gmail.com <zs...@gmail.com> #7
Hi again, just to be informed about the status of this potential issue.
Could you be able to reproduce it?
Could you be able to reproduce it?
ma...@lyft.com <ma...@lyft.com> #8
Yup, I reproduced the issue and engineering is working on a fix. Thanks!
nd...@gmail.com <nd...@gmail.com> #9
Did you find a solution? I have the same problem
be...@google.com <be...@google.com> #10
Yes, I have fixed it. Google APIs doesn't support the images with high resolution. We have tried from small resolution to higher resolutions i.e. 512x512, 1024x1024, 2048x2048, 3072x3072. These resolutions are getting supported. Our image size goes upto 4.9 MB size. above 3072x resolution, it is not supporting.
Its better to go for tiling approach with 256x256 / 512x512 size images.
Its better to go for tiling approach with 256x256 / 512x512 size images.
le...@pinkfroot.com <le...@pinkfroot.com> #11
This is fixed in 1.10.0. Thanks for the report!
ma...@gmail.com <ma...@gmail.com> #12
That decision should be left to the developer. I can understand that this impact can be noticeable for several apps that make an intensive use of maps. But for other apps, you might want to remove that limit to improve performance without affecting the battery life that much.
Please leave it as default in 30fps but give the chance to modify it, The impact on performance is, sometimes, huge.
Please leave it as default in 30fps but give the chance to modify it, The impact on performance is, sometimes, huge.
ma...@gmail.com <ma...@gmail.com> #13
This issue should not be closed. The original reporter and all 40 people who starred the issue all know that it is 'working as intended' - ie there is a purposeful cap of 30 fps. However, this issue was created to recommend that you lift the artificial rate cap.
Also, Apple MapKit does not have a 30fps limit.
Also, Apple MapKit does not have a 30fps limit.
pa...@uber.com <pa...@uber.com> #14
The 30/60 FPS argument isn't for this use case. It's for apps that have long session times (ie: games). I don't see a reason to not allow developers to make this choice for themselves.
za...@gmail.com <za...@gmail.com> #15
The Google Maps app runs at 60fps now, I don't see why the Google Maps SDK should be any different.
si...@zubon.net <si...@zubon.net> #16
+1 - any chance of this being fixed?
bm...@gmail.com <bm...@gmail.com> #17
It's disappointing that this issue was closed without a proper fix.
I think it should be reopened. Especially considering that Google fixed it for the Google Maps App, but not for the SDK!
If Google decided it's ok for their own app, I don't see how the battery life argument can be valid.
I think it should be reopened. Especially considering that Google fixed it for the Google Maps App, but not for the SDK!
If Google decided it's ok for their own app, I don't see how the battery life argument can be valid.
st...@mac.com <st...@mac.com> #18
Yes, this is ridiculous. This should be the developer's choice.
pa...@gtempaccount.com <pa...@gtempaccount.com> #19
I guess this is not about the choise and it's aimed at 60 fps internally. rather it's a hardware and optimization issue. it's probably just can't run at 60fps due to performance and resources that are used by other things within the app.
bm...@gmail.com <bm...@gmail.com> #20
"it's probably just can't run at 60fps due to performance and resources that are used by other things within the app."
That does not appear to be true, because the Google Maps app - clearly based on the same core code as the Maps API - runs nice and smooth at 60fps.
That does not appear to be true, because the Google Maps app - clearly based on the same core code as the Maps API - runs nice and smooth at 60fps.
pa...@gtempaccount.com <pa...@gtempaccount.com> #21
[Comment deleted]
pa...@gtempaccount.com <pa...@gtempaccount.com> #22
Google Maps app does nothing esle then maps, so, obviously, resources are enough.
In my apps a lot going on beyond GM.
So, taking into account how the OpenGL and DisplayLink work, it's very probably it's an optimization issue.
In my apps a lot going on beyond GM.
So, taking into account how the OpenGL and DisplayLink work, it's very probably it's an optimization issue.
pa...@gtempaccount.com <pa...@gtempaccount.com> #23
E.g. on iOS an app using DisplayLink that is not able to render a frame within 1/60th of a second will use 30FPS.
bm...@gmail.com <bm...@gmail.com> #24
"E.g. on iOS an app using DisplayLink that is not able to render a frame within 1/60th of a second will use 30FPS."
That's fine, but it's a choice that should be left up to the app developer. At the very least, expose an option to enable 60fps. The vast majority of apps will not have any problem at all doing 60fps with Google Maps, just like the don't have any problem doing it with Apple Maps or anything else.
That's fine, but it's a choice that should be left up to the app developer. At the very least, expose an option to enable 60fps. The vast majority of apps will not have any problem at all doing 60fps with Google Maps, just like the don't have any problem doing it with Apple Maps or anything else.
[Deleted User] <[Deleted User]> #25
This issue should not be closed. Capped at 30FPS shouldn't be forced. MKMapkit works at 60FPS and we really need 60FPS. 30FPS is really laggy.
zs...@gmail.com <zs...@gmail.com> #26
Call this in viewDidAppear: and applicationDidBecomeActive:
- (void)updateFrameRate {
id sharedServices = [GMSServices sharedServices];
SEL servicesSelector = NSSelectorFromString(@"services");
if ([sharedServices respondsToSelector:servicesSelector]) {
id services = objc_msgSend(sharedServices, servicesSelector);
if (services != nil) {
SEL displayLinkSelector = NSSelectorFromString(@"displayLink");
if ([services respondsToSelector:displayLinkSelector]) {
id displayLink = objc_msgSend(services, displayLinkSelector);
if (displayLink != nil) {
SEL setFrameRateSelector = NSSelectorFromString(@"setFrameRate:");
if ([displayLink respondsToSelector:setFrameRateSelector]) {
int (*action)(id, SEL, int) = (int (*)(id, SEL, int)) objc_msgSend;
action(displayLink, setFrameRateSelector, 45);
}
}
}
}
}
}
- (void)updateFrameRate {
id sharedServices = [GMSServices sharedServices];
SEL servicesSelector = NSSelectorFromString(@"services");
if ([sharedServices respondsToSelector:servicesSelector]) {
id services = objc_msgSend(sharedServices, servicesSelector);
if (services != nil) {
SEL displayLinkSelector = NSSelectorFromString(@"displayLink");
if ([services respondsToSelector:displayLinkSelector]) {
id displayLink = objc_msgSend(services, displayLinkSelector);
if (displayLink != nil) {
SEL setFrameRateSelector = NSSelectorFromString(@"setFrameRate:");
if ([displayLink respondsToSelector:setFrameRateSelector]) {
int (*action)(id, SEL, int) = (int (*)(id, SEL, int)) objc_msgSend;
action(displayLink, setFrameRateSelector, 45);
}
}
}
}
}
}
ma...@gmail.com <ma...@gmail.com> #27
Nice, great find! So far it looks great with smooth animation at 60 FPS, similar to the Google Maps app. Would still like to see this fixed by Google though. Like others have mentioned, make this optional for developers who want a higher performance map.
bm...@gmail.com <bm...@gmail.com> #28
I agree. This has not been fixed and the issue should be reopened.
br...@google.com <br...@google.com>
br...@google.com <br...@google.com> #29
We have released the capability render at 60fps on higher end devices with version 1.13. Please upgrade and give it a go. Thanks for the constant encouragement =)
Description
This results in noticeable "jitter" when panning and zooming the map, compared to MapKit or Google Maps on the web.
*********************************************************
For developers viewing this issue: please click the 'star' icon to be
notified of future changes, and to let us know how many of you are
interested in seeing it resolved.
*********************************************************