Chtěl jsem k zobrazení mapy Google do zobrazení mapy, na kterém chci nakreslit polygon / kruh.
Nějaká rada?
Chtěl jsem k zobrazení mapy Google do zobrazení mapy, na kterém chci nakreslit polygon / kruh.
Nějaká rada?
To, jak jsem četl vaši otázku je, že chcete, aby programově nakreslit mnohoúhelník na mapě. Za tímto účelem konzultovat dokumenty jablko na MapKit.
Nepotřebujete přidat průhledné výhled na mapě MapKit ( MKMapView). Vytvoření překryvného objektu, v tomto případě MKPolygon. (v následujícím příkladu proměnné mapbude MKMapViewinstance ve vlastnictví kontroleru pohledu, který vložíte tento kód):
CLLocationCoordinate2D points[4];
points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);
MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";
[map addOverlay:poly];
Potom, pokud chcete přizpůsobit vzhled (barvy, mrtvice, atd) z překryv, implementovat MKMapViewDelegateprotokol v kontroleru pohledu máte, která vlastní MKMapViewobjekt a poskytnout plnění mapView:viewForOverlay:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
if ([overlay isKindOfClass:[MKPolygon class]])
{
MKPolygonView* aView = [[[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay] autorelease];
aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
aView.lineWidth = 3;
return aView;
}
return nil;
}
Samozřejmě, vždy na paměti, aby skutečně přiřadit delegáta mapou instance do svého pohledu regulátoru (MKMapViewDelegate), a to buď v stavitel rozhraní, nebo v kódu (např viewDidLoad).
Použil jsem nápady z této osoby blogu, jak toho dosáhnout. Je to v podstatě spočívá v přidání transparentní výhled na mapu. Mapa pak umožňuje převádět umístění bodů na pohled. Dejte mi vědět, zda je daná lokalita nepomůže a mohu pokusit vykopat příklad z mého kódu.