У меня есть 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};
}
;
Этот сайт с картой имеет своего рода апи, где вы можете передать его координаты? –
Я только что редактировал свой вопрос, показывая часть моего кода javascript, где я считаю, что это имя называется. Я использую - (void) webViewDidFinishLoad: (UIWebView *) viewWeb { NSLog (@ «Got here!»); [_viewWeb stringByEvaluatingJavaScriptFromString: @ "window.getPosition = function()"]; } – Creagen
Наверное, я сейчас смущен тем, что вы пытаетесь сделать. У вас возникли проблемы с получением местоположения пользователей на устройстве или у вас возникли проблемы с передачей координат из этого места на ваш javascript или у javascript возникли проблемы с использованием данных, которые были переданы в него? –