2011-08-06 1 views
0

Google Maps APIを利用するプロジェクトを進めています。デフォルトでは、サンフランシスコを中心とした埋め込みマップを表示するページを作成したいと思いますが、選択されているドロップダウンメニュー項目に応じて、特定のマーカーとポリラインが追加されます。私はマップとマーカーの表示をユーザーの選択に応じて変更するために、このリストを構成する方法がわかりません。ドロップダウンリストの選択に応じて異なる地図マーカーとポリラインを表示します

私がする必要があると思うのは、ユーザー入力に応じて異なるコードチャンクで実行するために、JavaScriptでスイッチ機能を設定することです。私はJavaScriptの初心者ですから、どうやってそれを行うのかは分かりません。

現在、私はドロップダウンリストとデフォルトのマップ表示のみを設定しています。アドバイスをいただければ幸いです。

<!DOCTYPE html> 
<!-- The majority of this embedding code was borrowed from code.google.com/apis/maps/documentation/javascript/examples/map-simple.html --> 
<html> 
<head> 
<meta name="viewport" content="width=page-width, initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" /> 
<link href="styles.css" rel="stylesheet" type="text/css" /> 
<title>Project 2: BART Route Map</title> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 

function initialize() { 
    var myLatlng = new google.maps.LatLng(37.786453,-122.416649); 
    var myOptions = { 
     zoom: 12, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
    scrollwheel: false 
    } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title:"San Francisco" 
    }); 
    } 
</script> 

</head> 
<body onload="initialize()"> 
<h1> BART Route Map </h1> 
<h2> Select a route: </h2> 
<form id="routeselector"> 
    <select name="mapchange"> 
    <option value="DALY-DUBL">Daly City - Dublin/Pleasanton</option> 
    <option value="DALY-FRMT">Daly City - Fremont</option> 
    <option value="DUBL-DALY">Dublin/Pleasanton - Daly City</option> 
    <option value="FRMT-DALY">Fremont - Daly City</option> 
    <option value="FRMT-RICH">Fremont - Richmond</option> 
    <option value="MLBR-RICH">Millbrae/Daly City - Richmond</option> 
    <option value="SFIA-PITT">Millbrae/SFIA - Pittsburg/Bay Point</option> 
    <option value="PITT-SFIA">Pittsburg/Bay Point - SFIA/Millbrae</option> 
    <option value="RICH-FRMT">Richmond - Fremont</option> 
    <option value="RICH-MLBR">Richmond - Daly City/Millbrae</option> 
    </select> 
</form> 

<div id="map_canvas" style="height=100%; width=100%"> 
</div><!-- map_canvas --> 

</body> 

</html> 

答えて

0

あなたは<select>制御のappropraite DOMイベント(おそらくonChange)をリッスンするためにaddDomListener()を使用することができます。そのイベントのハンドラー内で、既存のマーカーのマップをnullに設定し、表示するマーカーのマップをmapに設定する必要があります。合理的な数のマーカーがある場合は、事前にそれらをすべて作成することができます。何千ものマーカーを扱っているなら、それは別の話です。必要に応じてマーカーを作成する必要がある場合は、ハンドラーでのスコープの動作を理解してください。

私はポリラインで作業していませんが、プロセスは類似している可能性があります。

私は本当にswitch文はあなたがこのケースで使用したいものであるとは思わないが、あなたは聞いているので、あなただけのGoogleのJavaScriptのswitch文することができますし、まともな説明を見つけます。多くの悪意を持ったw3schoolでも(詳細は不明だが)acceptable quick introとなっている。構文を示す方法は次のとおりです。

switch(n) 
{ 
case 1: 
    execute code block 1 
    break; 
case 2: 
    execute code block 2 
    break; 
default: 
    code to be executed if n is different from case 1 and 2 
} 
関連する問題