Code Monkey home page Code Monkey logo

route-me's People

Contributors

amnesic avatar bradtheappguy avatar obrand69 avatar orff avatar

route-me's Issues

Add overlay support

We will need overlay support for most of the tile sources.

We need a standard map overlay interface for static overlays and for
overlays with positions bound to the map.

Original issue reported on code.google.com by [email protected] on 19 Sep 2008 at 6:50

Suspect a small memory leak with zoomByFactor (animated only)

In RMMapContents.m line 329 (r198) : 

NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:
                        [NSNumber numberWithFloat:zoomIncr], @"zoomIncr", 
                        [NSNumber numberWithFloat:targetZoom], @"targetZoom", 
                        CGPointCreateDictionaryRepresentation(pivot), @"pivot", 
                            callback, @"callback", nil];

The function 'CGPointCreateDictionaryRepresentation' returns a Core Foundation 
object with a +1 retain 
count (owning reference). But this object is no longer referenced after this 
point and has a retain count of 
+1 (object leaked).

Modification could be something like : 

CFDictionaryRef pivotRef = CGPointCreateDictionaryRepresentation(pivot);
NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:
                        [NSNumber numberWithFloat:zoomIncr], @"zoomIncr", 
                        [NSNumber numberWithFloat:targetZoom], @"targetZoom", 
                        pivotRef, @"pivot", 
                        callback, @"callback", nil];
CFRelease(pivotRef);

-- loïc

Original issue reported on code.google.com by [email protected] on 25 Feb 2009 at 2:34

moveTo methods not removing tiles from cache correctly

Steps to reproduce the problem

Add the following test call to the end of MapViewController viewDidLoad method :

CLLocationCoordinate2D newLocation;
newLocation.latitude = -33.9495;
newLocation.longitude = 151.2381;
[[mapView contents] moveToLatLong:newLocation];

This moves the map to display different tiles, but should not move the marker.

Panning around after the move will make the problem obvious. 

There are two issues :

One is that the marker position is not adjusted correctly on screen - I think 
this is fixed by a one 
line change (latest commit).

The other is that the tiles are not displayed properly after the move - if the 
location is 
sufficiently distant, this won't be noticed, but if the location being moved to 
is nearby, the tiles 
won't redraw properly (panning the map around after the location change will 
reveal this 
problem). 

RMTileLoader doesn't seem to be invalidating certain tiles correctly after the 
map is moved 
programatically (calling the moveBy function doesn't have this problem). I 
think perhaps the 
problem is in updateLoadedImages, but any pointers would be gratefully 
received. 



Original issue reported on code.google.com by kennygrant on 9 Nov 2008 at 3:49

Can't seem to integrate with my project

What steps will reproduce the problem?
1. Create a new xcode project "myMapTest"
2. Add class files from your /RouteMe-0.8/MapView/Classes dir
3. Add to project frameworks: proj4.xcodeproj, QuartzCore.framework,
CoreLocation.framework, CoreFoundation.framework
4. Attempt to compile.

What is the expected output? What do you see instead?

I would expect the project to compile successfully.  Instead the compiler
finds 42 errors.  I understand that the "MapView" project needs to
reference code inside the mysterious "Proj4" xcode project but I can't
figure out how to integrate two executable project/targets in my
"myMapTest" project.  It would be appreciated if you could explain how this
works.

What version of the product are you using? On what operating system?

RouteMe 0.8 on iPhone OS 2.1

Please provide any additional information below.

Again, thanks for your hard work on this component and sorry for bombarding
you with questions/requests.  I'm pretty new to mac/cocoa development so
these IDE project settings are all new to me.

Original issue reported on code.google.com by [email protected] on 22 Sep 2008 at 6:44

Scrolling may continue to pan the map

What steps will reproduce the problem?
1. Scroll the map, or click on a marker
2. See that the map continues panning in one direction

What is the expected output? What do you see instead?
The map should cease moving (immediately or shortly) when the touch has
completed.

What version of the product are you using? On what operating system?
rev 163, I believe this to be a defect introduced by rev 161.


Original issue reported on code.google.com by [email protected] on 13 Dec 2008 at 7:55

Add Support for Double-Tap Zoom Animation

What steps will reproduce the problem?
1. Open any map.
2. Double tap to zoom in.

What is the expected output? What do you see instead?

For better usability, I would expect to see a smooth zoom to the next native 
zoom level. Instead, 
the map "snaps" to the next zoom level, resulting in a jarring transition and 
user losing spatial 
awareness.

What version of the product are you using? On what operating system?

SVN r154, iPhone OS Simulator 2.1

Please provide any additional information below.

Not applicable?

Original issue reported on code.google.com by [email protected] on 3 Dec 2008 at 8:20

RMPath memory leak

-(void) dealloc
{
    CGPathRelease(path);

    [super dealloc];
}

...

Elsewhere in the object the instance variable "points" is created as an
array. This array is never released.

Furthermore, it doesn't appear to ever be used anywhere other than in one
method which just creates objects to put into the array. If it is never
accessed, it can most likely be deprecated and removed from the code.

The nasty method is as follows... the suggested fix is to strip out the
instance variable and everything that uses it.

- (void) addLineToXY: (RMXYPoint) point
{
//  NSLog(@"addLineToXY %f %f", point.x, point.y);

    NSValue* value = [NSValue value:&point withObjCType:@encode(RMXYPoint)];

    if (points == nil)
    {
        points = [[NSMutableArray alloc] init];
        [points addObject:value];
        origin = point;

        self.position = [[contents mercatorToScreenProjection] projectXYPoint:
origin];
//      NSLog(@"screen position set to %f %f", self.position.x, self.position.y);
        CGPathMoveToPoint(path, NULL, 0.0f, 0.0f);
    }
    else
    {
        [points addObject:value];
        point.x = point.x - origin.x;
        point.y = point.y - origin.y;
        CGPathAddLineToPoint(path, NULL, point.x, -point.y);

        [self recalculateGeometry];
    }
    [self setNeedsDisplay];
}

Original issue reported on code.google.com by [email protected] on 24 Feb 2009 at 5:27

Loading starts before map positioned

When the program launches it first tries to load tile images at mercator
0,0. This loading is almost immediately cancelled; but its still poor form.

Original issue reported on code.google.com by [email protected] on 18 Sep 2008 at 5:31

info button does nothing on demo app

What steps will reproduce the problem?
1. compile MapView
2. click on the info button
3. nothing happens

What is the expected output? What do you see instead?

I was expecting to see configuration options. The info button just flashes.
I'm assuming that whatever is on the other side of the map view is
configuration information, like which map source is being used. 

What version of the product are you using? On what operating system?

Latest build checked out of subversion.

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 27 Jan 2009 at 7:15

Add routing support using OpenLS standard

Look at this service based on OpenStreetMap. There are doing routing and it's 
pretty smooth !
http://data.giub.uni-bonn.de/openrouteservice/index.php

Original issue reported on code.google.com by francois.proulx on 24 Nov 2008 at 12:14

Crash invoking RMMapView without a coordinate

What steps will reproduce the problem?

1.  Allocating a RMMapView without a coordinate

        RMMapView *mapView=[[[RMMapView alloc]initWithFrame:frame]autorelease];
        mapView.delegate=self;
        self.view=mapView;


2.  will crash in

- (id) initForView: (UIView*) view WithTileSource: 
(id<RMTileSource>)_tileSource WithRenderer: 
(RMMapRenderer*)_renderer LookingAt:(CLLocationCoordinate2D)latlong {


[self moveToLatLong:latlong]; //crash

}


3.  The crash happens only on the iPhone in release mode.


What version of the product are you using? On what operating system?

r190 on iPhone 2.2







Original issue reported on code.google.com by [email protected] on 20 Jan 2009 at 7:37

Map Center and Markers are off centered when Initialized with CGRectZero

What steps will reproduce the problem?
1. Create a RMMapView with frame set to CGRectZero and a valid coordinate
2. Set it to the view of a view 
3. Add a RMMarker to the map

What is the expected output? What do you see instead?
Marker and center show up in the correct location
Marker and center show up to the left where the center used to be at 0,0

What version of the product are you using? On what operating system?
Revision 192
iPhone OS 2.2 \ (Build Device - 2.0 | Debug)

Please provide any additional information below.
I added the following two lines of code to fix this to the setFrame method in 
RMMapView

- (void)setFrame:(CGRect)frame
{
    CLLocationCoordinate2D center = self.mapCenter; //NEW
  CGRect bounds = CGRectMake(0, 0, frame.size.width, frame.size.height);
  [mercatorToScreenProjection setScreenBounds:bounds];
  background.frame = bounds;
  layer.frame = frame;
  overlay.frame = bounds;
  [tileLoader clearLoadedBounds];
  [tileLoader updateLoadedImages];
  [renderer setFrame:frame];
    [self moveToLatLong:center]; //NEW
}



Original issue reported on code.google.com by [email protected] on 6 Feb 2009 at 9:25

Looping map won't reset origin value

What steps will reproduce the problem?
1. Pan the map left or right until it loops
2. Inspect the origin.x value
3.

What is the expected output? What do you see instead?

The origin.x mercator value should have reset itself as your looped so if
you started at Los Angeles and the origin.x = -13228504.803257 and you kept
panning left until you got back to Los Angeles the origin.x should still be
-13228504.803257

Instead, you get origin.x = -53283074.465077  Keep going left until it
loops again and you'll get origin.x  = -93348751.582676

Please use labels and text to provide additional information.

I think we should set the origin to reset itself when the map loops
otherwise other methods like latLongToPixel may not function properly.


Original issue reported on code.google.com by [email protected] on 22 Oct 2008 at 11:10

memory leak in RMLayerSet

What steps will reproduce the problem?
1. Look at initForContents. this line:
set = [[NSMutableArray alloc] init];
has no corresponding 'dealloc' for the 'set' Array. So, you leak that array.

What is the expected output? What do you see instead?
using the Leaks tool, you see the array leak.

What version of the product are you using?
1.92

Please provide any additional information below.
If you add a dealloc() like this:
- (void) dealloc 
{
    [set release];
    [super dealloc];
}
It appears to get rid of the leak.



Original issue reported on code.google.com by [email protected] on 18 Feb 2009 at 5:13

Add geocoding service support

It would be really neat to add geocoding support using Google Maps HTTP REST 
service. You specify 
the google maps api key, and you can use some class to generate markers based 
on geocoded 
locations.

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct


Original issue reported on code.google.com by francois.proulx on 2 Nov 2008 at 4:02

dealloc on mapview is causing EXC_BAD_ACCESS

What steps will reproduce the problem?
1. create a new UIViewController contains RMMapView, ex:MapViewController
2. push the MapViewController from another navigation controller
3. clicking back from MapViewController will cause EXC_BAD_ACCESS if
self.mapview is released in dealloc

What is the expected output? What do you see instead?
expected output: the mapview is dealloc properly, instead im getting
EXC_BAD_ACCESS message

What version of the product are you using? On what operating system?
RouteMe version 0.10, Mac OS 10.5.5

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 7 Jan 2009 at 4:35

Wide pinch causes strange behaviour

What steps will reproduce the problem?
1. Place both fingers on the non-touchscreen parts of the glass 
2. Bring them together

The program jitters strangely and stops responding to user input.

Original issue reported on code.google.com by [email protected] on 18 Sep 2008 at 2:09

Embedding lacks marker images

What steps will reproduce the problem?
1. Embed MapView into a separate project
2. try to plot markers in your separate project
3. Markers won't appear on map and debugger reads: <Error>:
CGImageSourceCreateWithDataProvider data parameter is nil\n

What is the expected output? What do you see instead?
We expect to see a marker plot 

Markers fail to show up on the map and error message reads: <Error>:
CGImageSourceCreateWithDataProvider data parameter is nil\n


Please use labels and text to provide additional information.

I think the images in MapView's Resources directory are not getting copied
properly when you embed MapView inside another project.

Original issue reported on code.google.com by [email protected] on 27 Oct 2008 at 6:55

Fire action as soon as map stops

I really love that u can now accelerate the map. But it would be nice to inform 
the delegate as soon 
as the map slowed down. In my opinion this is essential because if ure getting 
markers from a 
server you have no possibility to detect the new bounds (afterMapMove: and 
afterMapTouch: are 
fired earlier and the map is still moving).

-M

Original issue reported on code.google.com by [email protected] on 10 Jan 2009 at 7:03

error-message: image too large for GPU

When I zoom into the map using the interactive inputs (two
fingers ;-) ), the drawn path is scaled, which is obvious by the
aliased edges of the path-elements. At some point, the console tells
me that the image is too large for the GPU and gets ignored. There are
two errors I get:

 Tue Jan 13 14:52:10 unknown com.apple.SpringBoard[22] <Notice>:
CoreAnimation: 11096480 MB image is too large for GPU, ignoring

or

Thu Jan 15 14:14:15 unknown com.apple.SpringBoard[22] <Notice>:
CoreAnimation: 2506 by 2191 image is too large for GPU, ignoring  

This error only occurs when running the app on the iPhone device, not the
simulator. Once this error occurs, I can't redraw to force the iPhone
to create a new, smaller image, because the iPhone/App crashes. 


Another error which may be related to this is the relocation/moving of
the viewport of the map using moveToLatLong: the path isn't translated
along with the map, it just stays in its place on the screen. 


Original issue reported on code.google.com by [email protected] on 8 Feb 2009 at 2:16

maker label view with multiple layers will not trigger touch delegate methods

What steps will reproduce the problem?
1. create a view with subviews in it
2. assign that view as a marker label view
3. touches on the visible marker label view do not trigger 
tapOnLabelForMarker:onMap

What is the expected output? What do you see instead?
I would assume the entire view hierarchy would be clickable

What version of the product are you using? On what operating system?
r192, 10.5

Please provide any additional information below.

the patch changes the touch handling in RMMapView.m to address this case

Original issue reported on code.google.com by [email protected] on 6 Feb 2009 at 1:11

Attachments:

panning only displays "loading" images

What steps will reproduce the problem?
1. touch the map and pan it with your finger down
2.
3.

What is the expected output? What do you see instead?

As you pan (finger down) the "loading" images should be replaced with the
correct map tile, instead the "loading" images are shown.  It's only when
you release your finger off the screen that the map tiles display.


Original issue reported on code.google.com by [email protected] on 26 Sep 2008 at 3:21

location accuracy is shifted based on zoom

What steps will reproduce the problem?
1. change the default zoom level by editing the source, move it a couple
points higher
2. in your test app place a marker at 40.7642, -73.9729, this is the 
intersection of 5th ave and 59th st. in Manhattan (corner of central park)
3. view the location on the map when the app starts... at zoom 10 it is
considerably off of the location. At zoom 12 it moves a bit closer. At zoom
18 it is much closer. The lower the zoom number is the more the accuracy is
off.

What is the expected output? What do you see instead?

If everything is accurate, the marker should be in the exact same spot
regardless of the zoom level which the app is starting with. When you zoom
in or out from either of the test cases you should be in the same spot. 

This shows what is going on... there is either a rounding error or a
fencepost error that gets dramatized with the lower zoom numbers. At 18 it
is very close, though not accurate.

http://img443.imageshack.us/my.php?image=zoomqo5.jpg

I am using the smooth zoom patch so it would be good if someone can test
against the unpatched source.

Original issue reported on code.google.com by db%[email protected] on 8 Feb 2009 at 3:55

RMMarker subclass bug

What steps will reproduce the problem?
1. Subclass off of RMMarker.
2. Add the subclass to the map.
3. Click on the marker.

What is the expected output? What do you see instead?
The tapOnMarker delegate method will not be called because it is not a
RMMarker.  In RMMap.m, you should use isKindOfClass instead of isMemberOfClass.

What version of the product are you using? On what operating system?
Most recent, Mac OS X 10.5

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 12 Dec 2008 at 5:26

Compilation on Mac Mini ?

What steps will reproduce the problem?
1. Trying to build on a Mac Mini
2. Follow embed instructions
3. Build does not work, with i386 error

What is the expected output? What do you see instead?

Expected to see successful compliation, but instead, when building target 
MapView:
Libtool /Users/benh/Documents/MapView/build/Debug-iphonesimulator/libMapView.a 
normal 
i386 (1 error)


What version of the product are you using? On what operating system?
I used SVN to get latest version.  Running on Leopard fully updated and XCode 
3.1

Please provide any additional information below.
Sorry I haven't got any other Macs to test on.  I assume the i386 error is 
something about my 
environment ?  Thanks alot for this great project !!


Original issue reported on code.google.com by [email protected] on 18 Dec 2008 at 4:58

Virtual earth satellite images can not be used

What steps will reproduce the problem?
1. Go to RMVirtualEarthSource 
2. change mapType to @"a"
3. change mapExtension = @".jpg";

What is the expected output? What do you see instead?
Now map should use virtual earth satellite tiles, but instead no tiles are 
rendered.

What version of the product are you using? On what operating system?


Please provide any additional information below.
Satellite images are jpg images so  CGImageCreateWithJPEGDataProvider should be 
used instead 
of  CGImageCreateWithPNGDataProvider in the RMTileImage setImageToData method. 
The image 
type might be found from content-type of the URLResponse so that right data 
provider can be 
used


Original issue reported on code.google.com by [email protected] on 21 Nov 2008 at 1:04

bad method names: getScreenCoordinateBounds and getCoordinateBounds, others

Standard nomenclature for these methods would be simply screenCoordinateBounds 
and 
coordinateBounds (without the initial "get"). The "get" prefix is reserved for 
returning multiple 
values indirectly via a buffer.

See 
http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/CodingGuidelines/Artic
les/Nami
ngMethods.html#//apple_ref/doc/uid/20001282-1004202-BCIGGFCC



Original issue reported on code.google.com by [email protected] on 23 Feb 2009 at 1:38

RMMapContents crash for latitude window > 90 degrees

What steps will reproduce the problem?
Call -[RMMapContents zoomWithLatLngBoundsNorthEast:SouthWest:] with two
points more than 90 degrees of latitude apart, such as 80oN and 20oS

What is the expected output? What do you see instead?
It should zoom to the rect, but instead freezes in an infinite loop.

What version of the product are you using? On what operating system?
Revision 173 on iPhone OS 2.2.

Please provide any additional information below.
I am attaching a patch that fixes this crash.  The crash happens when the
code subtracts two points and converts the difference from mercator to XY.
 If the mercator contains a latitude with magnitude > 90 degrees,
[projection latLongToPoint:latLongBounds] returns nan.  My patch fixes this
by converting the two points separately and subtracting the resulting points.

Original issue reported on code.google.com by [email protected] on 8 Jan 2009 at 9:19

Attachments:

RMCachedTileSource initWithSource: allocation/deallocation bug

Code correctness issue here that is going to cause a reference counting
problem.

The case where initWithSource: is called with an RMCachedTileSource
class is intended to cause the sender to release.

In the case below, -dealloc; is being called directly. This has four major
errors as a result.

(1) the superclass is going to enter dealloc before ever entering init. If
the code is encapsulated, it is possible that the superclass will attempt
to free unallocated memory as a result. dealloc is not supposed to be
entered without init being entered first. Subclass does not know what super
is doing so subclass has to obey the rules.

(2) dealloc is being entered into in self without init ever being entered.
While this is within scope for encapsulation, it is still erroneous and
could cause an issue down the line.

(3) reference count is bad exiting this method. Since +alloc; has created
this object and incremented its reference count, calling -dealloc; directly
is skipping over the inverse reference count. What happens then is that
this object will attempt to deallocate memory it never allocated, and then
this object will leak.

(4) After leaking, this object returns the passed in argument in place of
itself. The object passed in has a retain count that balances its release
count in its previous role. It may now be exiting in place of an allocated
object, an object which should have a +1 to the retain count due to alloc.
Therefore the recipient down the road in the new role will be expecting to
have one extra release to balance the alloc; Since this object was already
balanced in its previous role, the new role will be out of balance
generating the possibility of an extra release. If this is being balanced
by using the dealloc direct call, it's probably bad news. 

The suggestion here is to clean up the allocation and deallocation issues,
follow the reference counting standard, as it will guarantee correctness
and minimize the chance of funky heisenbug type behavior and/or memory leaks.

Corrected code in this case would be to initialize super, check for failure
there first, and return nil if failed. Continuing pass to the second case,
checking for equivalency to the given superclass, if so, [self release]
should be called to decrement the reference count and fix the leak. The
returned object should have a reference count added to it and then returned. 

I'm a bit uneasy about the second part, and hoping that it isn't
programming by side effect somehow...






- (id) initWithSource: (id<RMTileSource>) _source
{
    if ([_source isKindOfClass:[RMCachedTileSource class]])
    {
        [self dealloc];
        return _source;
    }

    if (![super init])
        return nil;

    tileSource = [_source retain];

    cache = [[RMTileCache alloc] initWithTileSource:tileSource];

    return self;
}


Original issue reported on code.google.com by [email protected] on 29 Jan 2009 at 3:52

Database size never shrinks

As new tiles are added to the database, the database never shrinks.

Tiles cached in the database should be timestamped so old tile images can
be tossed as appropriate.

Original issue reported on code.google.com by [email protected] on 27 Oct 2008 at 2:46

google maps

First of all, thanks for your great job. it helps me so much. I just want
to ask you when  do you plan to implement google maps map source?  that
will be nicer.:)



Original issue reported on code.google.com by [email protected] on 24 Feb 2009 at 1:49

If you pan around the earth, markers disappear

What steps will reproduce the problem?

Pan right around the earth when there's a marker on the map.

What is the expected output? What do you see instead?

Markers disappear. [overlay correctPositionOfAllSublayers] should be called
when the map wraps around.

Original issue reported on code.google.com by [email protected] on 20 Nov 2008 at 2:43

Zoom all the way out causes strange behaviour

What steps will reproduce the problem?
1. Zoom all the way out

What is the expected output? What do you see instead?
Expect the map to work correctly, or to disallow the user from zooming out
that far. Instead the user is allowed, and the map breaks its mind.

Original issue reported on code.google.com by [email protected] on 18 Sep 2008 at 2:07

marker label bug

Bad code in RMMarker. If someone attempts to replace the image it nulls out
the labelView without deallocating it and removing it from the superlayer.
This is bad from two points of view.

1. someone might want to on a click change the image of the marker from red
to blue or vice versa, they may not want the label to be destroyed on a
click so the assumption that the label should go away is a bad one.

2. the label is not actually going away as intended by the code, the label
stays around permanently because the reference to the label is lost by the
marker when the image is changed.

The corrected code would simply not modify the label variable. 

- (void) replaceImage:(CGImageRef)image anchorPoint:(CGPoint)_anchorPoint
{
    self.contents = (id)image;
    self.bounds = CGRectMake(0, 0, CGImageGetWidth(image),
CGImageGetHeight(image));
    self.anchorPoint = _anchorPoint;

    self.masksToBounds = NO;
    labelView = nil; /// <<<<----- cut this line, bug
}

Original issue reported on code.google.com by db%[email protected] on 7 Feb 2009 at 11:22

Off by 1 pixel display problem

What steps will reproduce the problem?
1. Pan the map display around, and note the edges of the tiles as they are
brought over from the network.
2. Occasionally a tile's right edge will have a black line (1 pixel wide)
3. This only happens on the device (iPod 2.0 and iPhone 2.1 firmware). It
is not producible on simulator.

What is the expected output? What do you see instead?
No tiles should have a black edge.

What version of the product are you using? On what operating system?
Reproducible as of r76


Original issue reported on code.google.com by [email protected] on 3 Nov 2008 at 5:31

RMWebTileImage NSInvalidArgumentException, crash bug

The method is coded incorrectly. It passes in
-(NSInteger)expectedContentLength; directly into NSMutableData's
-initWithCapacity: method. 

The first method can return -1 based on the server that is being accessed
and whether or not it returned a content length header. If no header is
present, the return value is as per the documents:

Return Value
The receiver’s expected content length, or NSURLResponseUnknownLength if
the length can’t be determined.

This constant is -1. When passed into the initWithCapacity: method this
causes an NSInvalidArgumentException to be raised, and the application crashes.

Here is the corrected code:

- (void)connection:(NSURLConnection *)_connection
didReceiveResponse:(NSURLResponse *)response
{
    if (data != nil)
        [data release];

    NSInteger contentLength = [response expectedContentLength];
    if (contentLength < 0) {
        contentLength = 0;
    }
    data = [[NSMutableData alloc] initWithCapacity:contentLength];
}



Original issue reported on code.google.com by db%[email protected] on 30 Jan 2009 at 2:02

RMPath incorrect color handling (crasher probably)


This code is incorrect:

@property (readwrite, assign) UIColor *lineColor;

- (void) setLineColor: (UIColor*) newLineColor
{
    lineColor = newLineColor;
    [self setNeedsDisplay];
}

Color objects are not static objects, they need to be retained and released
like any others. The standards, like blackColor and redColor that are being
used here by default may be internally retained because of frequent use
externally, but there is no guarantee that any given color object is going
to exist beyond the scope of this call if a custom color is created.

The property needs to be changed to retain, and the methods need to retain
the incoming object and release the outgoing object. 


Original issue reported on code.google.com by db%[email protected] on 19 Feb 2009 at 11:29

Ask tileSource for default attribution overlay

Currently there is no attribution overlay for any of the tile sources. This
is a problem for implementers.

In RMMapContents setTileSource: the new tilesource should be asked for an
(optional) overlay to add to the map overlay. This overlay could contain
copyright information, attribution, etc.

Simple change; but important.

Original issue reported on code.google.com by [email protected] on 20 Nov 2008 at 2:35

Crash on release of RMMapView / memory not released

What steps will reproduce the problem?

execute this code:

RMMapView* mapview = [[RMMapView alloc] initWithFrame:CGRectMake(0,0,320,640)];
[mapview release];

What is the expected output? What do you see instead?

the RMMapView should be released, freeing any used resources.

Instead, the application crashes in objc_msgSend during the dealloc.



Original issue reported on code.google.com by [email protected] on 20 Nov 2008 at 6:27

Possible Enhancement(s): latlongToPixel, pixelToLatlong, zoomToFit, setZoom, setCenter, isLoaded()

What steps will reproduce the problem?
1. NA

What is the expected output? What do you see instead?

latLongToPixel should give you the pixel coordinates of the map component
given a latLng coordinate.

pixelToLatlong should give you the latLng coordinates of the map given the
pixel coordinates of the map component.

zoomToFit should center and zoom the map around a collection of potential
marker/LatLng objects.  (this can alternately be implemented by zooming to
fit a minimum boundary defined by NE/SW LatLng coordinates).

setZoom should set the corresponding zoom level of the map to a supplied
integer value.

isLoaded() should return a boolean indicating the state of the map
(Potential addOverlay() methods in the future may need to check the init
state of the map before plotting overlays).


What version of the product are you using? On what operating system?
RouteMe 0.8
Device - iPhone OS 2.0

Please provide any additional information below.

Great component.  Thanks for all of your hard work so far.

Original issue reported on code.google.com by [email protected] on 19 Sep 2008 at 10:49

Zooming doesn't reuse already-loaded tile images

What steps will reproduce the problem?
1. Let the map load
2. Zoom the map
3. Release your fingers

The map replaces tiles with the loading image

It should store them until the new tile images are loaded.

Original issue reported on code.google.com by [email protected] on 18 Sep 2008 at 6:00

RMMapView initWithFrame: uninitialized variable bug

The gcc option "-Wuninitialized" along with "-O" can be used to catch
these. Not sure offhand if you have it on. In this case latlong is an
undefined value and is being passed into the initialization routine, which
could possibly cause the map in some conditions to initialize to a random
location or a very bad location. 

Correcting this should be latlong = { 0, 0}; as in awakeFromNib;

- (id)initWithFrame:(CGRect)frame
{
    CLLocationCoordinate2D latlong;

    if (self = [super initWithFrame:frame]) {
        [self initValues:latlong];
    }
    return self;
}

Original issue reported on code.google.com by [email protected] on 29 Jan 2009 at 3:57

Marker positions reflected on left screen boundary

What steps will reproduce the problem?
1. Create a Map View
2. Add a marker that is just outside the left screen border (for the default 
start position, an example 
would be latlng[-33.946, 151.23] )

What is the expected output? What do you see instead?

The marker should not be visible. 

At the moment, it is displayed on the map. The position is "mirrored" at the 
left screen border.


Original issue reported on code.google.com by [email protected] on 31 Oct 2008 at 11:22

marker subclass related bug

What steps will reproduce the problem?
1. create a subclass of RMMarker
2. put it on a map
3. tap on it... you will never get any events

What is the expected output? What do you see instead?

... You should get events.

Here is the bad code in - (void)touchesEnded:(NSSet *)touches
withEvent:(UIEvent *)event or RMMapView:

     if ([hit isMemberOfClass: [RMMarker class]]) {

This code restricts any marker hits to pure members of the RMMarker class.
There is no reason to do this, subclassing is part of Object Oriented
programming and people will be subclassing markers to extend functionality
and fix bugs (as I am in both domains).

The correct code would be:

     if ([hit isKindOfClass: [RMMarker class]]) {

Which allows for full inheritance from RMMarker to be included in
dispatched delegate notifications in regards to markers on the map.


What version of the product are you using? On what operating system?

.. 

Please provide any additional information below.


Original issue reported on code.google.com by db%[email protected] on 7 Feb 2009 at 10:46

Taps aren't firing on the right markers

What steps will reproduce the problem?
1. Have a few markers clustered close together on the map
2. Tap on one of them, either the tap doesn't fire, or it fires on the
wrong marker.

What version of the product are you using? On what operating system?
rev 163. This defect has been around for at least a month.

Original issue reported on code.google.com by [email protected] on 13 Dec 2008 at 8:08

RMPath enhancement code

I saw that RMPath had an unused BOOL instance variable named
scaleLineWidth.  I implemented a property that sets this value and wrote
code to draw the line appropriately based on this property.  When
scaleLineWidth is NO, lineWidth is in units of screen pixels.

I am attaching both source files and a patch.

Original issue reported on code.google.com by [email protected] on 5 Jan 2009 at 4:06

Attachments:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.