1

私はiPhoneアプリケーションで作業していUIWebViewます。Googleマップアドレスをロードするために使用しており、正常に動作します。次に、タッチの場所latitudelongitude値をから取得しようとしましたがUIWebView、それを知りませんでした。これを行うにはどうすればよいですか?これを行うことは可能ですか?私を助けてください

前もって感謝します

私はこれを試しました:

    webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 40, 320,376)];
    webView.delegate=self;
    webView.scalesPageToFit=YES;
    NSLog(@"URL:%@",[user valueForKey:@"google_Address"]);
    NSString *googleMapsURLString = [NSString stringWithFormat:@"http://maps.google.com/?saddr=37.785834,-122.406417&output=embed"];
    NSURL *url=[NSURL URLWithString:googleMapsURLString];
    NSURLRequest *requestObj=[NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];
    [self.view addSubview:webView];  
4

2 に答える 2

1

私はあなたのタッチ イベント座標の解決策を得ましたが、MKmapView を使用する必要があります。以下のコードを貼り付けています。

.h で

 #import <MapKit/MapKit.h> //import this in your project

 //define the objects;
 MKMapView *mapView;
 CLLocationCoordinate2D coordinate;

プロジェクトに MapKit.framework を追加することを忘れないでください

メートルで

- (void)viewDidLoad
 {

    mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];//Release it in dealloc
    mapView.delegate=self;

    [self.view addSubview:mapView]; 
    [self displayRegion];

    UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]initWithTarget:self      
    action:@selector(handleGesture:)];   
    tgr.numberOfTapsRequired = 1;
    [mapView addGestureRecognizer:tgr];
    [tgr release];

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
   }

    - (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
     {
         if (gestureRecognizer.state != UIGestureRecognizerStateEnded)
          return;

         CGPoint touchPoint = [gestureRecognizer locationInView:mapView];
         coordinate = [mapView convertPoint:touchPoint toCoordinateFromView:mapView];

          NSLog(@"latitude  %f longitude %f",coordinate.latitude,coordinate.longitude);


       }


       -(void)displayRegion
         {
           MKCoordinateRegion region;
           MKCoordinateSpan span;
           span.latitudeDelta=0.2;
           span.longitudeDelta=0.2;

           CLLocationCoordinate2D location;

           location.latitude = 22.569722 ;
           location.longitude = 88.369722;


            region.span=span;
            region.center=location;

            [mapView setRegion:region animated:TRUE];
            [mapView regionThatFits:region];
          }

このコードをテストすると、正しい値が得られました。もう1つ、シミュレーターではなくデバイスで常にこれをテストしようとします。結果を返信してみてください。今はうまくいくはずです

于 2012-11-19T11:36:46.380 に答える
0

上記のコメントのとおり、MapKitを使用する場合は、次のコードを使用して、タッチ位置の緯度/経度を取得できます

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
CLLocationCoordinate2D coord= [MyMapView convertPoint:point toCoordinateFromView:MyMapView];
NSLog(@"latitude  %f longitude %f",coord.latitude,coord.longitude);


return [super hitTest:point withEvent:event];

}

于 2012-11-19T07:27:07.643 に答える