2016-04-27 27 views
-1

JSを使用してGoogleマップに円を描きたい。Googleマップ+ JS(サークルを追加)

マイコード:

ボタンコード:

INDEX.HTMLマップの

<button type="button" class="btn btn-primary btn-sm" id="test1" onclick="DrawCircle()">Wyświetlk mapę 

本部(index.htmlを):ドローマップと1のため

<div id="googleMap" style="width:500px;height:380px;"> 
    <script>mapping()</script> 
</div> 

機能サンプルサークル(functions.js)

function mapping(){ 

    var citymap = 
    { 
      warsaw: 
      { 
      center: {lat: 52.14, lng: 21.1}, 
      population: 1740000 
      } 
    } 


    function initialize() { 
     var mapProp = { 
     center:new google.maps.LatLng(52.13 ,19.02), 
     zoom:6, 
     mapTypeId:google.maps.MapTypeId.ROADMAP 
     }; 


    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp); 

    for (var city in citymap) 
    { 

     var cityCircle = new google.maps.Circle({ 
      strokeColor: '#FF0000', 
      strokeOpacity: 0.8, 
      strokeWeight: 2, 
      fillColor: '#FF0000', 
      fillOpacity: 0.35, 
      map: map, 
      center: citymap[city].center, 
      radius: Math.sqrt(citymap[city].population) * 30 
    }); 
    } 

    } 

    google.maps.event.addDomListener(window, 'load', initialize); 
} 

と円を描くように機能する: キャッチされないでSyntaxError:予期しない識別子 (インデックス):198キャッチされないにReferenceError:マッピングは

何の変更/追加が定義されていません

function DrawCircle() 
    { 

     draw_circle = new.google.maps.Circle({ 

      center: {lat: 52.94, lng: 20.1}, 
      radius: 2000, 
      strokeColor: "#000", 
      strokeOpacity: 0.6, 
      strokeWeight: 2; 
      fillColor: "#0099AA", 
      fillOpacity: 0.25, 
      map: map 
     }); 

    } 

を私がエラーを持っています(repiar)? こことGoogleのAPIのドキュメントでこの問題を解決することはできません。

私はそれが定義される前に、ヘルプ

+1

あなたのコードに2つのタイプミスがあります:1. 'new.google.maps.Circle({'(newとgoogleの間のスペースにする必要があります)2. 'strokeWeight:2;'(カンマ) (http://jsfiddle.net/geocodezip/zcuo7o5w/2/) – geocodezip

答えて

1

のためにあなたは、おそらくmapping()を呼び出している喜んでいるでしょう。

JavaScriptコードは、HTMLページのどこにありますか?

投稿したJavaScriptブロックがにあり、mapping()に電話する前にになることを確認してください。

loadリスナーであるinitializeを既に使用しているため、mapping()は機能としてあまり役に立ちません。

私はこれを完全に取り除き、コードの周りのfunction mapping() { ... }も削除することをお勧めします。コードをどこに置いても自動的に動作するはずです。初期化コードが実行された後で初めてDrawCircleに電話するようにしてください。例えば、それをinitialize関数自体に入れることができます。

(ところで、私はラインdraw_circle = ...が何をしたい。私はそれが偶然グローバル変数を作成防ぐために前に少なくともvarが必要に引き受けるないかはわからない。)

また、私はあなたのコードを正しく字下げすることを示唆していますが、さまざまな関数スコープがどこにあるかは非常に不明です。

EDIT:別の問題が見つかりました:new.google.maps.circleは有効なコードではありません(newはキーワードです)。あなたは最初のドットなしでnew google.maps.circleが欲しいと思いますか?この構文エラーが原因で外部JavaScriptファイル全体が読み込まれない場合(特にコメントの説明のとおり、<head>領域に記述されているため)、mappingが見つからない理由も説明します。

このエラーを修正する必要があります。また、ページの読み込み中に開発者コンソールを開いて(ブラウザでF12キーを押して)、コンソールのタブを見てくださいそこに(恐らくファイル内のどこにエラーが発生したかに関するリンクがあります)。

+0

私はスクリプトマッピング()を削除すると、マップは表示されません(javascriptコードは他のファイルにあります) –

+0

1)私が示唆したように、 'function mapping(){...}'をメインコードの周りに置いていますか? 2)はい、他のファイルはどこに含まれていますか? – CherryDT

+0

私はindex.htmlを持っています。ここでは、divはheadであり、function.jsの頭のURLです。 機能JSではこのスクリプトがあります。 –