无法使用Google Map API JS在intel xdk中看到谷歌地图

时间:2016-04-12 04:40:48

标签: javascript cordova google-maps geolocation intel-xdk

这是我的第一个Google Map API项目,我正在创建一个传输应用程序,但遗憾的是它不起作用,之前它正在运行,但现在它只在浏览器中工作,而不是在移动和模拟器上。

在模拟器中,它只显示Google徽标和Terms链接。

我正在使用此引用谷歌链接

<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=MYKEY&libraries=places"></script>

我的JS CODE :( mapwork.js)

function currentpostionmap()
{
     if ( navigator.geolocation ) {


        function success(pos) 
         {
             var latlng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
             var myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map"), myOptions);
          var image123 = 'https:///developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png';
             var bounds = new google.maps.LatLngBounds();
        marker = new google.maps.Marker({
            position: latlng,
            map: map,
            icon: image123
        
        });
              bounds.extend(latlng);
                    map.fitBounds(bounds);
//            
                    multimarker(map);
//               

        }
        function fail(error) {
           var latlng = new google.maps.LatLng(18.5204, 73.8567);
             var myOptions = {
            zoom: 10,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
            map = new google.maps.Map(document.getElementById("map"), myOptions);
      
            marker = new google.maps.Marker({
            position: latlng,
            map: map
           
            });


        }
        // Find the users current position.  Cache the location for 5 minutes, timeout after 6 seconds
        navigator.geolocation.getCurrentPosition(success, fail, {maximumAge: 500000, enableHighAccuracy:true, timeout: 6000});
    } 
}
function multimarker(map)
{
          jQuery.ajax({                              
    url: baseurl +  "getdriverlocation.php",

    async: true,
    success: function(data){
       var myArray = jQuery.parseJSON(data);// instead of JSON.parse(data)

        jQuery(myArray).each(function( index, element ) {     
        driverlat = element.driver_lat;
        driverlng = element.driver_lng;
        locations.push([driverlat , driverlng])
});



 for (i  = 0; i < locations.length; i++)
                 { 
                var latlng1 = new google.maps.LatLng(locations[i][0], locations[i][1]);

            drivermarker=new google.maps.Marker({position:latlng1});
            drivermarker.setMap(map);

           google.maps.event.addListener(drivermarker, 'click', (function(marker, i) {
            return function() {

            //DRIVER CLICK EVENT
        }
      })(drivermarker, i));



                 }


} 

});

}
 function watchDriverPosition(userid)
{
    function success(pos)
    {
         window.setInterval(function(){
          saveDriverLocation(pos.coords.latitude, pos.coords.longitude,userid);
        }, 50000);
    }
    function fail()
    {
        alert ('Fail to watch drivers Position');
    }
    watchId = navigator.geolocation.watchPosition(success, fail, {maximumAge: 500000, enableHighAccuracy:true, timeout: 6000});

}
function saveDriverLocation(latc,lngc,userid)
{

     jQuery.ajax({
url: baseurl + "postdriverlocation.php",
data:'latitude='+latc +'&longitude='+lngc+'&login_id='+userid,
type: "POST",
success:function(response){
    response = $.trim(response);
    if (response == "false"){
       console.log(response);


  }else{
      console.log(response);
  }


},
error:function (){}
});
}

在此处调用地图功能(main.js)

function showmap(usertype,userid)
    {
        if (usertype==1)
            {
                          changepage('#main');
                currentpostionmap();

            }
        else if (usertype==0)
            {

                watchDriverPosition(userid);

            }
        else{
            alert('You are not logged in.');
            changepage('#login');
        }
    }

它适用于所有浏览器,但不适用于EMULATOR或MOBILE PHONE。

请让我知道它为什么会发生并提供更好的解决方案

由于

1 个答案:

答案 0 :(得分:2)

将地图代码包装到

 $( document ).on( "pageshow", "#YOUR_MAP_PAGE", function() {

//your map code...

});