2015-09-06 76 views
0

我是网络开发新手,使用传单和代码时遇到问题。问题是我不能创建标记。下面是代码:传单无法创建标记

  <html> 
    <head> 
     <link rel="stylesheet" href="<?php echo base_url();?>dist/css/leaflet.css" /> 
     <link rel="stylesheet" href="<?php echo base_url();?>dist/css/main.css"/> 
    </head> 
    <body> 
     <div id="map"></div> 

    </body> </html> 



<script src="<?php echo base_url();?>dist/js/leaflet.js"></script> <script src="<?php echo base_url();?>dist/js/jquery-1.11.0.js"></script> 

<script> 
    var map = L.map('map').setView([51.505, -0.09], 13); 
    function createMarker(lat,long){ 


     var marker = L.marker([lat,long]).addTo(map); 
    } 



    $(function(){ 

     L.tileLayer('http://{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {   attribution: '&copy; <a href="http://osm.org/copyright" title="OpenStreetMap" target="_blank">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" title="MapQuest" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png" width="16" height="16">',   subdomains: ['otile1','otile2','otile3','otile4']   }).addTo(map); 
     $.getJSON('index.php/map/getData',function(data){ 

      debugger; 
      for(i=0;i<3;i++) 
      { 
       var latitude = parseFloat(data[i].latitude); 
       var longitude = parseFloat(data[i].longitude); 
       createMarker(latitude,longitude);  
      } 

     }); 
    }); </script> 

这里是内部的getJSON所检索的数据:

> [ 
Object 
hasil_uji_id: 1 
latitude: 51.13 
longitude: -0.07 
nama_hasil_uji: "iqbal 3" 
__proto__: Object 
, 
Object 
hasil_uji_id: 123 
latitude: 51.05 
longitude: -0.09 
nama_hasil_uji: "iqbal" 
__proto__: Object 
, 
Object 
hasil_uji_id: 1234 
latitude: 51.09 
longitude: -0.08 
nama_hasil_uji: "iqbal 2" 
__proto__: Object 
] 

然而,当我硬编码的纬度和经度的值,该标记示出了。敬请赐教单张大师

+0

'$ .getJSON'代码部分不属于'L.tileLayer'选项参数。但这可能不是导致您的标记不显示的问题。你在js控制台中收到任何错误消息吗? – tyr

+0

@tyr谢谢你的关心,我弄清楚这个问题是我自己的愚蠢:(。 –

回答

0

我的错误,一个非常愚蠢的,对我感到羞耻。该代码确实工作,标记不显示,因为经度和经度太远setView

当我缩小,他们确实出现。