繁体   English   中英

如何在当前位置打开UIWebView?

[英]How Do I Open A UIWebView On My Current Location?

我有一个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};
    }


    ;

您需要获取12.6.0,53.01之类的位置。 然后,您可以使用here.com地图。 要通过地理位置,请访问here.com/12.06,53.01。 或者,您可以照常使用MapKit。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM