On Jun 30, 9:27 am, Fabrizio Bartolomucci <[email protected]> wrote: > Il giorno 30/giu/2012, alle ore 17:50, [email protected] ha scritto: > > > On Jun 30, 2:42 am, Fabrizio Bartolomucci <[email protected]> wrote: > >> Thanks Larry, > >> actually that is quite strange given the coordinates seem to move on the > >> same > >> direction while the drawn polyline seem to also have a reverse path. I > >> also tried > >> to just print the first 100 dots, but they already featured that odd > >> behavior. > > > I did the same thing Andrew did (after verifying that the data in your > > post exhibited the behavior): > >http://www.geocodezip.com/v3_GenericMapBrowser.asp?filename=FabrizioB... > > Yes, of course: the data had duplications. Thanks anyway for the confirmation > testifying the rather weird aspect of the duplications... > > > > >> As for the origin, the main points, in effect corresponding to the > >> threading of the > >> return path, are the positions of the bus stops of a bus line, and the > >> points in > >> between are the ones returned by google to connect them through roads. > > > Seems like whoever added the bus stops put them in the wrong place. > > To the reverse: as you may see in the original url I > submitted:http://www.miafoto.it/iPhone/inarrivo/php/paletteForLineWithRoute.php... > The latitudes for the bus stops along with their names are correct and > distinct. It is the google algorithm joining them to apparently create the > duplications in each leg. > > > > >> Could you point me to the points producing that weird effect and/or to a > >> web site > >> where I may submit my points and have them drawn on a map without having to > >> mangle with the iOS app? > > > I don't know of any tool to do that. I would have to go through the > > points manually. It would be easier to do with the original data. > > The data are inside the xml result in the latitude, longitude tags, while the > coordinates returned by google are inserted into the legLatitude and > legLongitude tags, of course in the source of the page. > > You may try and join the first two coordinates retuned by the url: > <latitude>41.658935</latitude><longitude>12.422408</longitude> > <latitude>41.665596</latitude><longitude>12.404847</longitude> > through the google direction service to see what is returns, if that is > different from what I get: namely: > <path><leg><legLatitude>41.65886</legLatitude><legLongitude>12.4223</legLon > gitude></leg><leg><legLatitude>41.6592</legLatitude><legLongitude>12.42188< > /legLongitude></leg><leg><legLatitude>41.65947</legLatitude><legLongitude>1 > 2.42155</legLongitude></leg><leg><legLatitude>41.65948</legLatitude><legLon > gitude>12.42147</legLongitude></leg><leg><legLatitude>41.65957</legLatitude > ><legLongitude>12.42136</legLongitude></leg><leg><legLatitude>41.65957</leg > Latitude><legLongitude>12.42136</legLongitude></leg><leg><legLatitude>41.65 > 913</legLatitude><legLongitude>12.42066</legLongitude></leg><leg><legLatitu > de>41.65901</legLatitude><legLongitude>12.42046</legLongitude></leg><leg><l > egLatitude>41.65883</legLatitude><legLongitude>12.42018</legLongitude></leg > ><leg><legLatitude>41.65843</legLatitude><legLongitude>12.41957</legLongitu > de></leg><leg><legLatitude>41.6583</legLatitude><legLongitude>12.41936</leg > Longitude></leg><leg><legLatitude>41.65822</legLatitude><legLongitude>12.41 > 92</legLongitude></leg><leg><legLatitude>41.65814</legLatitude><legLongitud > e>12.41907</legLongitude></leg><leg><legLatitude>41.65745</legLatitude><leg > Longitude>12.41811</legLongitude></leg><leg><legLatitude>41.65695</legLatit > ude><legLongitude>12.41748</legLongitude></leg><leg><legLatitude>41.65677</ > legLatitude><legLongitude>12.41725</legLongitude></leg><leg><legLatitude>41 > .65668</legLatitude><legLongitude>12.41713</legLongitude></leg><leg><legLat > itude>41.65668</legLatitude><legLongitude>12.41713</legLongitude></leg><leg > ><legLatitude>41.65679</legLatitude><legLongitude>12.41699</legLongitude></ > leg><leg><legLatitude>41.6569</legLatitude><legLongitude>12.41685</legLongi > tude></leg><leg><legLatitude>41.65719</legLatitude><legLongitude>12.4164</l > egLongitude></leg><leg><legLatitude>41.65735</legLatitude><legLongitude>12. > 41616</legLongitude></leg><leg><legLatitude>41.65789</legLatitude><legLongi > tude>12.41538</legLongitude></leg><leg><legLatitude>41.65799</legLatitude>< > legLongitude>12.41523</legLongitude></leg><leg><legLatitude>41.65801</legLa > titude><legLongitude>12.4152</legLongitude></leg><leg><legLatitude>41.65861 > </legLatitude><legLongitude>12.41431</legLongitude></leg><leg><legLatitude> > 41.65886</legLatitude><legLongitude>12.4223</legLongitude></leg><leg><legLa > titude>41.65947</legLatitude><legLongitude>12.42155</legLongitude></leg><le > g><legLatitude>41.65948</legLatitude><legLongitude>12.42147</legLongitude>< > /leg><leg><legLatitude>41.65957</legLatitude><legLongitude>12.42136</legLon > gitude></leg><leg><legLatitude>41.65901</legLatitude><legLongitude>12.42046 > </legLongitude></leg><leg><legLatitude>41.65843</legLatitude><legLongitude> > 12.41957</legLongitude></leg><leg><legLatitude>41.65822</legLatitude><legLo > ngitude>12.4192</legLongitude></leg><leg><legLatitude>41.65745</legLatitude > ><legLongitude>12.41811</legLongitude></leg><leg><legLatitude>41.65677</leg > Latitude><legLongitude>12.41725</legLongitude></leg><leg><legLatitude>41.65 > 668</legLatitude><legLongitude>12.41713</legLongitude></leg><leg><legLatitu > de>41.65679</legLatitude><legLongitude>12.41699</legLongitude></leg><leg><l > egLatitude>41.65719</legLatitude><legLongitude>12.4164</legLongitude></leg> > <leg><legLatitude>41.65789</legLatitude><legLongitude>12.41538</legLongitud > e></leg><leg><legLatitude>41.65861</legLatitude><legLongitude>12.41431</leg > Longitude></leg></path> > with quite a large number of duplicates.
Sounds like you are doing the wrong thing with the data. Why are you including the source points as well as the leg points? Or did I misunderstand? -- Larry > > Greetings, Fabrizio > > > > > > > > > > >> Greetings, Fabrizio > > >> Inviato da un mobile Fabrizio attraverso iPhone > > >> Il giorno 29/giu/2012, alle ore 23:15, "[email protected]" > >> <[email protected]> ha scritto: > > >>> On Jun 29, 11:55 am, Fabrizio Bartolomucci <[email protected]> > >>> wrote: > >>>> Hullo, > >>>> I would like to draw a polyline overlay over a map using values obtained > >>>> by > >>>> google connecting some dots along the existing roads. Still while the > >>>> sequence I report here seems monotonouse, at least on the latitude side, > >>>> the polyline been drawn has a weird shape with one section along its full > >>>> lenght correctly following the roads, but with an apparent return part > >>>> going straighter and connecting random points near the correct ones as > >>>> you > >>>> may see: > >>>> <http://miafoto.it/docs/IMG_0399.PNG> > > >>>> how do I get rid of them? > > >>> That is what the data you are putting in the polyline does. If you > >>> want to not have the line retrace like it is doing, you have to remove > >>> the extra points. > > >>> Where did this data come from? Why do you believe it shouldn't be > >>> doing that? > > >>> -- Larry > > >>>> This the code use: > > >>>> -(void) loadRoute:(Line*)myLine{ > > >>>> NSArray* pointStrings=[myLine getFullPath]; > > >>>> /* NSMutableArray *coordinatesArray=[[NSMutableArray alloc] init]; > > >>>> for(int i = 0; i < [pointStrings count]; i++) { > > >>>> [coordinatesArray > >>>> addObject:CLLocationCoordinate2DMake([pointStrings > >>>> objectAtIndex:i].,p.y); > > >>>> } > > >>>> MKPolyline *polyLine = [MKPolyline > >>>> polylineWithCoordinates:pointStrings count:[pointStrings count]]; > > >>>> [myMapView addOverlay:polyLine];*/ > > >>>> // while we create the route points, we will also be calculating > >>>> the bounding box of our route > > >>>> // so we can easily zoom in on it. > > >>>> MKMapPoint northEastPoint; > > >>>> MKMapPoint southWestPoint; > > >>>> // create a c array of points. > > >>>> pointArr = malloc(sizeof(CLLocationCoordinate2D) * > >>>> pointStrings.count); > > >>>> for(int idx = 0; idx < pointStrings.count-1; idx++) > > >>>> { > > >>>> // break the string down even further to latitude and > >>>> longitude fields. > > >>>> NSString* currentPointString = [pointStrings > >>>> objectAtIndex:idx]; > > >>>> NSArray* latLonArr = [currentPointString > >>>> componentsSeparatedByCharactersInSet:[NSCharacterSet > >>>> characterSetWithCharactersInString:@"|"]]; > > >>>> CLLocationDegrees latitude = [[latLonArr objectAtIndex:0] > >>>> doubleValue]; > > >>>> CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] > >>>> doubleValue]; > > >>>> // create our coordinate and add it to the correct spot in the > >>>> array > > >>>> CLLocationCoordinate2D coordinate = > >>>> CLLocationCoordinate2DMake(latitude, longitude); > > >>>> NSLog(@"%f, %f", latitude,longitude); > > >>>> MKMapPoint point = MKMapPointForCoordinate(coordinate); > > >>>> // > > >>>> // adjust the bounding box > > >>>> // > > >>>> // if it is the first point, just use them, since we have > >>>> nothing to compare to yet. > > >>>> if (idx == 0) { > > >>>> northEastPoint = point; > > >>>> southWestPoint = point; > > >>>> } > > >>>> else > > >>>> { > > >>>> if (point.x > northEastPoint.x) > > >>>> northEastPoint.x = point.x; > > >>>> if(point.y > northEastPoint.y) > > >>>> northEastPoint.y = point.y; > > >>>> if (point.x < southWestPoint.x) > > >>>> southWestPoint.x = point.x; > > >>>> if (point.y < southWestPoint.y) > > >>>> southWestPoint.y = point.y; > > >>>> } > > >>>> pointArr[idx] = point; > > >>>> } > > >>>> // create the polyline based on the array of points. > > >>>> self.routeLine = [MKPolyline polylineWithPoints:pointArr > >>>> count:pointStrings.count-1]; > > >>>> _routeRect = MKMapRectMake(southWestPoint.x, southWestPoint.y, > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "Google Maps API V2" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-api?hl=en.
