0

Gmap3-Jqueryプラグインを使用して、Webアプリケーションの1つでGoogleマップを生成しています。現在、Google APIをローカルドライブにダウンロードし、HTMLページで同じものを使用しています。

ただし、すべてのアクションは正常に機能していますが、3〜4日後にGoogleAPIが機能しなくなります。同じリンクからローカルドライブに新しいGoogleAPIをダウンロードすると、すべて正常に機能します。そのような問題の原因は何でしょうか?APIキーのせいですか?または、ローカルドライブにダウンロードして、ローカルから参照しているためですか?

しかし、APIキーを必要としないGoogleマップAPI3をダウンロードしています。

コードは次のとおりです。

<script src="/site_media/js/google-map.js" type="text/javascript"></script>
<script type="text/javascript" src="/site_media/js/gmap3.js"></script> 
<script type="text/javascript">
    $(function(){
    $('#facility_map').gmap3(
        {    
      action:'init',
      options:{
                center:[26.327475, 50.20134],
            zoom: 18,
                mapTypeId: google.maps.MapTypeId.HYBRID
          }
        },      
            {
     action:'getRoute',
     options:{
               origin:['26.327475', '50.20134'], 
               destination:['{{facility.latitude}}', '{{facility.longitude}}'],
           travelMode: google.maps.DirectionsTravelMode.DRIVING
              },
     callback: function(results)
        { 
           if (!results) return;
           $(this).gmap3(
            { 
              action:'addDirectionsRenderer',
              options:{      
                            preserveViewport: true,         
                directions:results
                  }
            });
        }   
    },
           {
             action:'getDistance',
             options:{ 
                      origins:[['26.327475', '50.20134']], 
              destinations:[['{{facility.latitude}}', '{{facility.longitude}}']],
              travelMode: google.maps.TravelMode.DRIVING
             },
      callback: function(results)
      {
        var html = '';
        if (results)
            {
          for (var i = 0; i < results.rows.length; i++)
          {
         var elements = results.rows[i].elements;
         for(var j=0; j<elements.length; j++)
         {
            switch(elements[j].status)
           {
             case google.maps.DistanceMatrixStatus.OK:
                  html += results.destinationAddresses[j]+" -<b> "+elements[j].distance.text + ' (' + elements[j].duration.text + '</b>)<br />';
             break;
             case google.maps.DistanceMatrixStatus.NOT_FOUND:
              html += 'The origin and/or destination of this pairing could not be geocoded<br />';
             break;
             case google.maps.DistanceMatrixStatus.ZERO_RESULTS:
                  html += 'No route could be found between the origin and destination.<br />';
              break;
            }
        }
      } 
       } 
        else 
        {
           html = 'error';
         }
         $('#distance_msg').html("Distance From Rezayat Head Office Khobar to "+html);
       }
     }
    ); 
    });


</script>  
4

1 に答える 1

1

次のファイルをハードドライブ/Webアプリに保存していますか?

http://maps.google.com/maps/api/js?sensor=false

もしそうなら、あなたの質問への答え...

または、ローカルドライブにダウンロードして、ローカルから参照しているためですか?

...はいです。

参照しているファイルはキャッシュされるため、常に変更されます。上記のjQueryマッププラグインを使用したことはありませんが(ただし、非常にクールに見えます)、APIを見ると、スクリプトを直接保存するのではなく、Googleから呼び出す必要があると記載されています。

また、そのJSの負荷と帯域幅をGoogleに処理させ、ローカルに保存しないようにしてください。APIが変更される可能性があり、キャッシュされたバージョンでは、最新バージョンがロードされていないためにマップが破損する可能性があります。

また、もう1つ追加します。GoogleにjQueryをロードさせます。このサイトを使用している人は、より良いエクスペリエンスを得ることができます。この記事では、その理由を詳しく説明します。

于 2012-09-29T13:23:51.473 に答える