2012-02-02 7 views
0

私はPHP経由で作成されたマーカーのセットから値を渡すことになっていますが、IF条件を作成または実装してマーカーを表示する方法を理解できませんタイプ値に関連する画像。Google Maps API V3のPHPの値に基づいて異なるマーカーを表示

コード:

<script type="text/javascript"> 


var iconStar = new google.maps.MarkerImage("googleMarkers/star.png", 
        new google.maps.Size(32, 28), 
        new google.maps.Point(0, 0), 
       new google.maps.Point(16, 32)); 


var iconBlue = new google.maps.MarkerImage("images/mm_20_blue.png", 
        new google.maps.Size(12, 20), 
        new google.maps.Point(0,0), 
       new google.maps.Point(6, 20)); 



var iconRed = new google.maps.MarkerImage("images/mm_20_red.png", 
        new google.maps.Size(12, 20), 
        new google.maps.Point(6, 20), 
       new google.maps.Point(5, 1)); 

var iconYellow = new google.maps.MarkerImage("images/mm_20_yellow.png", 
        new google.maps.Size(12, 20), 
        new google.maps.Point(6, 20), 
       new google.maps.Point(5, 1)); 

iconType = [] = iconStar; 
iconType["0"] = iconStar; 
iconType["1"] = iconBlue; 
iconType["2"] = iconRed; 
iconType["3"] = iconYellow; 



     var center = null; 
     var map = null; 
     var currentPopup; 
     var bounds = new google.maps.LatLngBounds(); 

     function addMarker(lat, lng, info, type) { 
      var pt = new google.maps.LatLng(lat, lng); 
      bounds.extend(pt); 
      var marker = new google.maps.Marker({ 
       position: pt, 
       icon: iconType, 
       map: map 
      }); 


      var popup = new google.maps.InfoWindow({ 
       content: info, 
       maxWidth: 300 
      }); 


      google.maps.event.addListener(marker, "click", function() { 
       if (currentPopup != null) { 
        currentPopup.close(); 
        currentPopup = null; 
       } 
       popup.open(map, marker); 
       currentPopup = popup; 
      }); 
      google.maps.event.addListener(popup, "closeclick", function() { 
       // panTo puts you back to the original center - not good for zoomed in nav 
       // map.panTo(center); 
       currentPopup = null; 
      }); 
     } 


     function initMap() { 
      map = new google.maps.Map(document.getElementById("map"), { 
       center: new google.maps.LatLng(0, 0), 
       zoom: 13, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       mapTypeControl: false, 
       mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR 
       }, 
       navigationControl: true, 
       navigationControlOptions: { 
       style: google.maps.NavigationControlStyle.DEFAULT 
       } 

      }); 







<?php 
do { 
$name=$row_rsCity['DEALER']; 
$lat=$row_rsCity['lat']; 
    $lon=$row_rsCity['lng']; 
    $desc=$row_rsCity['ADDRESS']; 
    $city=$row_rsCity['CITY']; 
    $state=$row_rsCity['STATE']; 
    $phone=$row_rsCity['PHONENUMBER']; 
    $type=$row_rsCity['DEALER_TYPE']; 
    echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc<br/>$city , $state<br />Phone: $phone',$type);\n"); 
    } while ($row_rsCity = mysql_fetch_assoc($rsCity)); 
    ?> 
    center = bounds.getCenter(); 
    map.fitBounds(bounds); 

    } 

私は近いが、私はそう、この問題の解決に少しの助けを探しているオンライン同様の例を見つけることができません。

ありがとうございます!

+0

アイコン:、iconType [タイプ]のみiconStarまたはゼロの値を返し、次いでiconBlueなく、さらに:iconType、アイコンに変化しました。アイコンに変更 :iconType [「タイプ」]、 返さないカスタムマーカーのみGoogleの赤いマーカーをデフォルト はオンまたはオフにして、正しく値を渡すの問題だと思われると引用符に包まれていない場合Booleenとして動作しますが、引用符で囲まれていると値が渡されず、値を理解できない場合があります。 – Burndog

答えて

1

addMarker関数を呼び出すときは、関数リストの型を使用してアイコンのタイプ(数値)を渡す必要があります。

マーカーを追加するとき。 :

function addMarker(lat, lng, info, type) { 
      var pt = new google.maps.LatLng(lat, lng); 
      bounds.extend(pt); 
      var marker = new google.maps.Marker({ 
       position: pt, 
       icon: iconType[type], 
       map: map 
      }); 

は私が今までにこの方法の前にそれを行っていないが、私はなぜ表示されない.......あなたのアイコン配列に正しいアイコンを参照するように数値型に

を追加します。それはうまくいかないでしょう。

これが機能しない場合は、この例を見てください。 :

Change individual markers in google maps directions api V3

Google Maps API v3: How do I dynamically change the marker icon?

+0

ありがとうございますが、iconTypeが関数に変わり、エラーがスローされます。更新:括弧は肯定的な結果を返しているようですが、括弧と括弧の間の違いをキャッチすることが私の将来の希望です:-) – Burndog

+0

上記のiconType [type]を括弧に合わせて調整しましたか? –

+0

さらなるレビューでは、他の色のレンダリングが個々のアイコンの構成にあった問題が示されています。 ブラケットが問題を解決しました。ありがとうスミス – Burndog

関連する問題