Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2014, 16:31
Новичок на форуме
Отправить личное сообщение для qeqqeq Посмотреть профиль Найти все сообщения от qeqqeq
 
Регистрация: 19.04.2014
Сообщений: 6

Google map api v3
Ребят, проблема такая:
Все работает, маршрут прокладывается, местоположение определяется, но вместо того чтобы карта двигалась относительно моей геолокации, она начинает заново создаваться, а старая не удаляется и грузит память!!! Координаты конечно верные и все супер, но вот момент между созданием пустой и смотрится ужасно!
Как мне сделать так, чтобы карта двигалась, а не создавалась каждый раз новая???
var boolTripTrack = true;
var currentLatitude;
var currentLongitude;
var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;

directionsDisplay = new google.maps.DirectionsRenderer();
function initialize() {
    var karta = new google.maps.LatLng(currentLatitude, currentLongitude);
    var myOptions = {
      zoom: 17,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: karta
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), options);   
    var marker = new google.maps.Marker({
    position: karta,
    map: map,
    icon: 'me.png'
    });
	calcRoute();
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("directionsPanel")); 
    google.maps.event.addListener(directionsDisplay, 'directions_changed', function() {
    computeTotalDistance(directionsDisplay.directions); });  
}
  
  function calcRoute() {
    var start = currentLatitude+','+currentLongitude;
    var end = '54.626803,39.7163787';
    var request = {
        origin:start, 
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
  }
  
var options = {
    zoom: 17,
    timeout: 10000,
    maximumAge: 6000,
    enableHighAccuracy: true
};
//Success callback
var suc = function(p) {
        console.log("geolocation success", 4);
        //Draws the map initially
    
        if(currentLatitude != p.coords.latitude){
        currentLatitude = p.coords.latitude;
        initialize();
        }
        if(currentLongitude != p.coords.longitude){
        currentLongitude = p.coords.longitude;
        initialize();
        }

    };
var fail = function() {
        console.log("Geolocation failed. \nPlease enable GPS in Settings.", 1);
    };
var getLocation = function() {
        console.log("in getLocation", 4);
    };
    //Execute when the DOM loads
    //The Intel XDK intel.xdk.device.ready event fires once the Intel XDK has fully loaded. 
    //After the device has fired, you can safely make calls to Intel XDK function.    

function onDeviceReady() {
    try {
        if (intel.xdk.device.platform.indexOf("Android") != -1) {
            intel.xdk.display.useViewport(480, 480);
            document.getElementById("map_canvas").style.width = "480px";
        } else if (intel.xdk.device.platform.indexOf("iOS") != -1) {
            if (intel.xdk.device.model.indexOf("iPhone") != -1 || intel.xdk.device.model.indexOf("iPod") != -1) {
                intel.xdk.display.useViewport(320, 320);
                document.getElementById("map_canvas").style.width = "320px";
            } else if (intel.xdk.device.model.indexOf("iPad") != -1) {
                intel.xdk.display.useViewport(768, 768);
                document.getElementById("map_canvas").style.width = "768px";
            }
        }
        if (intel.xdk.iswin8) {
            document.getElementById("map_canvas").style.width = screen.width + "px";
            document.getElementById("map_canvas").style.height = screen.height + "px";
        }
        if (intel.xdk.geolocation !== null) {
            document.getElementById("map_canvas").style.height = screen.height + "px";
            intel.xdk.geolocation.watchPosition(suc, fail, options);
        }
    } catch (e) {
        alert(e.message);
    }
    try {
        //lock orientation
        intel.xdk.device.setRotateOrientation("portrait");
        intel.xdk.device.setAutoRotate(false);
    } catch (e) {}
    try {
        //manage power
        intel.xdk.device.managePower(true, false);
    } catch (e) {}
    try {
        //hide splash screen
        intel.xdk.device.hideSplashScreen();
    } catch (e) {}
}
document.addEventListener("intel.xdk.device.ready", onDeviceReady, false);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Результат дистанции двух точек черех google map чтобы выводился на отдельную страницу fastabst Элементы интерфейса 2 01.12.2014 17:43
Backbone google map api with markers from json files yloboda Backbone.js 1 03.12.2013 18:41
Google Map API HugoBorz jQuery 0 04.09.2010 16:44
эмитировать перемещение google map amigo* Элементы интерфейса 3 18.07.2010 18:24
Google Chart API mycoding Оффтопик 0 14.07.2010 11:22