2012-12-08 46 views
18

Güncel konum almak istediğinizde bazı sorun yaşıyorum.Get Geçerli konum Google Map

Bu GM API'yi ilk defa kullanıyorum ve anlamadığım çok şey var. İşte

benim kodudur ve ben değiştirmek istiyorum, sorun

var geocoder = new google.maps.Geocoder(); 

function initialize() { 
    var latLng = new google.maps.LatLng(-7.7801502, 110.3846387); 
    var map = new google.maps.Map(document.getElementById('mapCanvas'), { 
    zoom: 15, 
    center: latLng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    var marker = new google.maps.Marker({ 
    position: latLng, 
    title: 'Ambarrukmo Plaza Yogyakarta', 
    map: map, 
    draggable: true 
    }); 
} 

istiyorum -7,7801502 ve 110,3846387 değer otomatik olarak kullanıcının geçerli konumuna dayalı. Bunu yapabilir miyim?

Yardımlarınız ve açıklamalarınız için şimdiden teşekkür ederiz.

Başka bir soru: -> GPS ile gömülü olan bir cihaza göre bu değeri değiştireceksem ne olur?

cevap

27

Geçerli kullanıcının yerini Google Haritalar ile alamıyorsunuz. Ancak, Google Haritalar'ı Google Loader ile alırsanız, IP'ye göre bir konum almak için google.loader.CurrentLocation'u kullanabilirsiniz.

Başka bir yol ise HTML5 GeoLocation API.

function getLocation() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
    alert("Geolocation is not supported by this browser."); 
    } 
} 
function showPosition(position) { 
    var lat = position.coords.latitude; 
    var lng = position.coords.longitude; 
    map.setCenter(new google.maps.LatLng(lat, lng)); 
} 
+0

çoğu tarayıcı için güvenli https protokolü şimdi bu kod parçacığı [açıklama dahil] soruyu, (http://meta.stackexchange.com/ çözebilir iken HTML5 Coğrafi Yer API – ZimSystem

1

google haritalar API dünyada kalmak istiyorum ve size kullanabilirsiniz haritası değişkeni olduğunu varsayarak ise

var map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 

var myLat = map.center.k; 
var myLng = map.center.B; 

veya kullanabileceğiniz,

alert("Lat="+map.center.k); 
alert("Lng="+map.center.B); 
-1
import UIKit 
import GoogleMaps 
import GooglePlaces 
import CoreLocation 

class ViewController: UIViewController,CLLocationManagerDelegate,GMSMapViewDelegate { 

@IBOutlet weak var currentlocationlbl: UILabel! 


var mapView:GMSMapView! 

var locationManager:CLLocationManager! = CLLocationManager.init() 

var geoCoder:GMSGeocoder! 

var marker:GMSMarker! 

var initialcameraposition:GMSCameraPosition! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    self.mapView = GMSMapView() 
    self.geoCoder = GMSGeocoder() 
    self.marker = GMSMarker() 
    self.initialcameraposition = GMSCameraPosition() 

    // Create gms map view-------------> 
    mapView.frame = CGRect(x: 0, y: 150, width: 414, height: 667) 
    mapView.delegate = self 
    mapView.isMyLocationEnabled = true 
    mapView.isBuildingsEnabled = false 
    mapView.isTrafficEnabled = false 
    self.view.addSubview(mapView) 

    // create cureent location label----------> 

    self.currentlocationlbl.lineBreakMode = NSLineBreakMode.byWordWrapping 
    self.currentlocationlbl.numberOfLines = 3 
    self.currentlocationlbl.text = "Fetching address.........!!!!!" 

    locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation 
    if locationManager.responds(to: #selector(CLLocationManager.requestAlwaysAuthorization)) 
    { 
     self.locationManager.requestAlwaysAuthorization() 
    } 
    self.locationManager.startUpdatingLocation() 

    if #available(iOS 9, *) 
    { 
    self.locationManager.allowsBackgroundLocationUpdates = true 
    } 
    else 
    { 
     //fallback earlier version 
    } 
    self.locationManager.startUpdatingLocation() 


    self.marker.title = "Current Location" 
    self.marker.map = self.mapView 


    // Gps button add mapview 

    let gpbtn:UIButton! = UIButton.init() 
    gpbtn.frame = CGRect(x: 374, y: 500, width: 40, height: 40) 
    gpbtn.addTarget(self, action: #selector(gpsAction), for: .touchUpInside) 
    gpbtn.setImage(UIImage(named:"gps.jpg"), for: .normal) 
    self.mapView.addSubview(gpbtn) 
    } 

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
{ 
    var location123 = CLLocation() 

    location123 = locations[0] 

    let coordinate:CLLocationCoordinate2D! = CLLocationCoordinate2DMake(location123.coordinate.latitude, location123.coordinate.longitude) 

    let camera = GMSCameraPosition.camera(withTarget: coordinate, zoom: 16.0) 

    self.mapView.camera = camera 
    self.initialcameraposition = camera 
    self.marker.position = coordinate 
    self.locationManager.stopUpdatingLocation() 

} 


func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) 
{ 
    self.currentAddres(position.target) 
} 

func currentAddres(_ coordinate:CLLocationCoordinate2D) -> Void 
{ 
    geoCoder.reverseGeocodeCoordinate(coordinate) { (response, error) in 

     if error == nil 
     { 
      if response != nil 
      { 

       let address:GMSAddress! = response!.firstResult() 

       if address != nil 
       { 
        let addressArray:NSArray! = address.lines! as NSArray 

        if addressArray.count > 1 
        { 
         var convertAddress:AnyObject! = addressArray.object(at: 0) as AnyObject! 
         let space = "," 
         let convertAddress1:AnyObject! = addressArray.object(at: 1) as AnyObject! 
         let country:AnyObject! = address.country as AnyObject! 

         convertAddress = (((convertAddress.appending(space) + (convertAddress1 as! String)) + space) + (country as! String)) as AnyObject 

         self.currentlocationlbl.text = "\(convertAddress!)".appending(".") 
        } 
        else 
        { 
         self.currentlocationlbl.text = "Fetching current location failure!!!!" 
        } 

       } 


      } 
     } 
    } 
} 

...

+0

için gereklidir Sorular/114762/tamamen-kod-tabanlı-cevapları açıklayan) gerçekten yazınızın kalitesini artırmaya yardımcı olur. İleride okuyucuları için soruya cevap olduğunu hatırlayın ve bu kullanıcıların da kod öneri nedenlerini bilmiyor olabilir. – Isma

İlgili konular