2015-08-14 2 views
0

У меня есть UIWebView, отображающий сайт с только картой. Я бы хотел открыть UIWebView и перейти прямо к моему текущему местоположению. Любая помощь будет принята с благодарностью!Как открыть UIWebView на моем текущем местоположении?

Благодаря

Вот некоторые из моего кода -

ViewController.h:

#import <UIKit/UIKit.h> 
#import <StoreKit/StoreKit.h> 
#import <CoreMotion/CoreMotion.h> 
#import <CoreLocation/CoreLocation.h> 
#import <MapKit/MapKit.h> 

@interface ViewController : UIViewController <UIWebViewDelegate, MKMapViewDelegate, CLLocationManagerDelegate> 

@property (strong, nonatomic) IBOutlet UIWebView *viewWeb; 
@property (nonatomic, strong) CLLocationManager *locationManager; 
@property (nonatomic, strong) CLLocation *currentLocation; 

@end 

ViewController.m:

#import "ViewController.h" 

@interface ViewController() <UITextViewDelegate> 

@end 

@implementation ViewController 

@synthesize viewWeb; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Request Intel Site 
    NSString *fullURL = @“http://www.websitewithmap.com/”; 
    NSURL *url = [NSURL URLWithString:fullURL]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    viewWeb.scalesPageToFit = YES; 
    viewWeb.scrollView.bounces = NO; 
    [viewWeb loadRequest:requestObj]; 
} 

@end 

Мой JavaScript код:

// LOCATION HANDLING ///////////////////////////////////////////////// 
    // i.e. setting initial position and storing new position after moving 

    // retrieves current position from map and stores it cookies 
    window.storeMapPosition = function() { 
var m = window.map.getCenter(); 

if(m['lat'] >= -90 && m['lat'] <= 90) 
    writeCookie('gps.intelmap.lat', m['lat']); 

if(m['lng'] >= -180 && m['lng'] <= 180) 
    writeCookie('gps.intelmap.lng', m['lng']); 

writeCookie('gps.intelmap.zoom', window.map.getZoom()); 
    } 


    // either retrieves the last shown position from a cookie, from the 
    // URL or if neither is present, via Geolocation. If that fails, it 
    // returns a map that shows the whole world. 
    window.getPosition = function() { 
if(getURLParam('latE6') && getURLParam('lngE6')) { 
    console.log("mappos: reading email URL params"); 
    var lat = parseInt(getURLParam('latE6'))/1E6 || 0.0; 
    var lng = parseInt(getURLParam('lngE6'))/1E6 || 0.0; 
    var z = parseInt(getURLParam('z')) || 17; 
    return {center: new L.LatLng(lat, lng), zoom: z}; 
} 

if(getURLParam('ll')) { 
    console.log("mappos: reading stock Intel URL params"); 
    var lat = parseFloat(getURLParam('ll').split(",")[0]) || 0.0; 
    var lng = parseFloat(getURLParam('ll').split(",")[1]) || 0.0; 
    var z = parseInt(getURLParam('z')) || 17; 
    return {center: new L.LatLng(lat, lng), zoom: z}; 
    } 

    if(readCookie('gps.intelmap.lat') && readCookie('gps.intelmap.lng')) { 
console.log("mappos: reading cookies"); 
var lat = parseFloat(readCookie('gps.intelmap.lat')) || 0.0; 
var lng = parseFloat(readCookie('gps.intelmap.lng')) || 0.0; 
var z = parseInt(readCookie('gps.intelmap.zoom')) || 17; 

if(lat < -90 || lat > 90) lat = 0.0; 
if(lng < -180 || lng > 180) lng = 0.0; 

return {center: new L.LatLng(lat, lng), zoom: z}; 
    } 

    setTimeout("window.map.locate({setView : true});", 50); 

    return {center: new L.LatLng(0.0, 0.0), zoom: 1}; 
    } 


    ; 
+0

Этот сайт с картой имеет своего рода апи, где вы можете передать его координаты? –

+0

Я только что редактировал свой вопрос, показывая часть моего кода javascript, где я считаю, что это имя называется. Я использую - (void) webViewDidFinishLoad: (UIWebView *) viewWeb { NSLog (@ «Got here!»); [_viewWeb stringByEvaluatingJavaScriptFromString: @ "window.getPosition = function()"]; } – Creagen

+0

Наверное, я сейчас смущен тем, что вы пытаетесь сделать. У вас возникли проблемы с получением местоположения пользователей на устройстве или у вас возникли проблемы с передачей координат из этого места на ваш javascript или у javascript возникли проблемы с использованием данных, которые были переданы в него? –

ответ

1

Вам нужно получить информацию о вашем местоположении 12.06.53.01. Затем вы можете использовать карты here.com. Чтобы пройти свою геолокацию, вы можете зайти на сайт.com.12.06,53.01. Или вы можете просто использовать MapKit, как обычно.

Смежные вопросы