-1

アプリケーションの 1 つで Google マップを使用していました。このようなマークアップがありました。

<div>
  <label>Property Location</label>
  <input class="text-input" type="text"  name="property_location" id="property_location" value=""/>
</div>

私はgmap3を使用してGoogleマップを表示しています。マップを表示するための私のjsコードは彼のようなものです

jQuery(document).ready(function() {
  jQuery('#property_location').blur(function() {
    var the_address = jQuery(this).val();
    var geocoder = new google.maps.Geocoder();
    var latLng = geocoder.geocode({
      address: the_address
    }, function(results, status) {

  /// IF WE HAVE A RESULT
  if(status == google.maps.GeocoderStatus.OK) {
    lat = results[0].geometry.location.lat();
    lng = results[0].geometry.location.lng();
    jQuery('#latitude').val(lat);
    jQuery('#longitude').val(lng);

    jQuery(gMap).gmap3({
      get: {
        name: 'marker',
        all: true,
        callback: function(objs) {
          jQuery.each(objs, function(i, obj) {
            obj.setMap(null);
          })
        }
      },
      map: {
        options: {
          zoom: 10,
          center: new google.maps.LatLng(lat, lng)
        }
      },
        marker: {
          values: [{ latLng:[lat, lng] }],
          //jQuery(console.log(values));
          options: {
            draggable: true,
            icon: new google.maps.MarkerImage(
             "http://gmap3.net/skin/gmap/magicshow.png",
             new google.maps.Size(32, 37, "px", "px")
           ),
          },
          events: {
            mouseup: function(marker, event, context) {
              //// GETS MARKER LATITUDE AND LONGITUDE
              var thePos = marker.getPosition();
              var theLat = thePos.jb;
              var theLng = thePos.kb;
              jQuery('#latitude').val(theLat);
              jQuery('#longitude').val(theLng);
           },
           dragend: function(marker, event, context) {
              var thePos = marker.getPosition();
              //console.log(thePos);
              var theLati = thePos.ob;
              var theLngi = thePos.pb;
              jQuery('#latitude').val(theLati);
              jQuery('#longitude').val(theLngi);

            jQuery(this).gmap3({
              getaddress:{
                latLng:marker.getPosition(),
                callback:function(results){
                  var map = $(this).gmap3("get"),
                  infowindow = $(this).gmap3({get:"infowindow"}),
                  content = results && results[1] ? results && results[1].formatted_address : "no address";

                  if (infowindow){
                    infowindow.open(map, marker);
                    infowindow.setContent(content);
                  } else {
                  jQuery(this).gmap3({
                  infowindow:{
                    anchor:marker, 
                    options:{content: content}
                  }
                });
              }
            }
          }
        });

           },

         }
       }
     });
      } else {
        alert('Could not find the latitude and longitude for the address '+the_address);
              }
      });
    });
});

昨日は正常に動作していました。しかし、今日マップを確認すると、Firefox のコンソール タブに次のようなエラーが表示されました。

NetworkError: 403 Forbidden - http://maps.googleapis.com/maps/api/js/QuotaService.RecordEvent?

ここで何が問題なのか誰か親切に教えてもらえますか?助けや提案は本当にありがたいです. ありがとう

4

2 に答える 2

3

ああ..私は間違っていました。Googleマップコードをローカルサーバーにダウンロードし、ダウンロードしたファイルへのリンクを提供していました.それが問題でした. そのファイルを削除して、Googleマップコードへの直接リンクを作成したところ、最終的にマップが機能するようになりました...

于 2013-09-05T06:14:52.500 に答える
0

それが理由かどうかはわかりませんが、コードに問題があります。

var theLat = thePos.jb;
var theLng = thePos.kb;

var theLati = thePos.ob;
var theLngi = thePos.pb;

API によって内部的に使用されるLatLngs( jbkbob、 ) のプロパティにアクセスしようとすると、これらのプロパティの名前が変更される場合があります。pb

lat()およびメソッドを使用して、lng()緯度と経度を取得します。

var theLat = thePos.lat();
var theLng = thePos.lng();

var theLati = thePos.lat();
var theLngi = thePos.lng();
于 2013-09-04T11:49:35.127 に答える