Наложение изображения route-me в iPhone - PullRequest
3 голосов
/ 24 июля 2011

Я использую route-me в своем проекте. Библиотека неплохая. Добавление маркеров, рисование полигонов работают нормально. Как насчет размещения одного изображения в качестве наложения в заданном месте (широта, долгота)? Эта функциональность отсутствует, я думаю. Кто-нибудь делал размещение наложения изображения без перегрузки источника плиток?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Я нашел решение ...

 CLLocationCoordinate2D lcA =   CLLocationCoordinate2DMake(oSector.f_overlay_lat_min,oSector.f_overlay_long_min);
        CLLocationCoordinate2D lcB = CLLocationCoordinate2DMake(oSector.f_overlay_lat_max,oSector.f_overlay_long_max);

        CGPoint cgA = [mvMap latLongToPixel:lcA];
        CGPoint cgB = [mvMap latLongToPixel:lcB];

        float fLatMin  = MIN(cgA.x,cgB.x);
        float fLongMin = MIN(cgA.y,cgB.y);

        float fWidth  = sqrt((cgA.x - cgB.x)*(cgA.x - cgB.x));
        float fHeight = sqrt((cgA.y - cgB.y)*(cgA.y - cgB.y));

        RMMapLayer *mlLayer = [[RMMapLayer alloc] init];
        mlLayer.contents = (id) oSector.im_overlay.CGImage;
        mlLayer.frame    = CGRectMake(fLatMin,fLongMin,fWidth,fHeight); 

        [[mvMap.contents overlay] addSublayer:mlLayer];

mvMap - это IBOutlet RMMapView * mvMap где-нибудь в вашем h-файле

oSector.im_overlay.CGImage может быть

UIImage *i = [UIImage imageNamed:<something>];
lmLayer.contents = i.CGImage
0 голосов
/ 13 августа 2011

Почему бы просто не использовать RMMarker? Вы можете применить к нему любое изображение и разместить его по мере необходимости. Даже сделайте его перетаскиваемым, если вы хотите:

UIImage *imgLocation = [UIImage imageWithContentsOfFile :
                          [[NSBundle mainBundle] pathForResource:@"location_ind"      
                                                          ofType:@"png"]];
markerCurrentLocation = [[RMMarker alloc] initWithUIImage:imgLocation];
// make sure it is always above everything else.
markerCurrentLocation.zPosition = -1.0;
[mapView.markerManager addMarker:markerCurrentLocation
                       AtLatLong:startingPoint];

Ciao!

- Рэнди

...