2011-08-15 3 views
1

아래 코드를 사용하여 MySQL 데이터베이스의 위치 데이터를 사용하여 Google지도의 마커를 올바르게 표시합니다. 이 순간에 서로맞춤 Google지도 아이콘 값> = 1 인 경우

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>All Locations</title> 
     <link rel="stylesheet" href="css/alllocationsstyle.css" type="text/css" media="all" /> 
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=en"></script> 
     <script type="text/javascript"> 
      var customIcons = { 
      0: { 
      icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
      shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
      }, 
      1: { 
      icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png', 
      shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
      } 
      }; 

      function load() { 
      var map = new google.maps.Map(document.getElementById("map"), { 
      center: new google.maps.LatLng(54.312195845815246,-4.45948481875007), 
      zoom:6, 
      mapTypeId: 'roadmap' 
      }); 

      var infoWindow = new google.maps.InfoWindow; 

      // Change this depending on the name of your PHP file 
      downloadUrl("phpfile.php", function(data) { 
      var xml = data.responseXML; 
      var markers = xml.documentElement.getElementsByTagName("marker"); 
      for (var i = 0; i < markers.length; i++) { 
      var locationname = markers[i].getAttribute("locationname"); 
      var address = markers[i].getAttribute("address"); 
      var finds = markers[i].getAttribute("finds"); 
     var totalfinds = markers[i].getAttribute("totalfinds"); 
      var point = new google.maps.LatLng( 
      parseFloat(markers[i].getAttribute("osgb36lat")), 
      parseFloat(markers[i].getAttribute("osgb36lon"))); 
      var html = locationname + ', No.of finds: ' + "<b>" + totalfinds + "</b>"; 
      var icon = customIcons[totalfinds] || {}; 
      var marker = new google.maps.Marker({   
      map: map, 
      position: point, 
      title: address, 
      icon: icon.icon, 
      shadow: icon.shadow 
      }); 
      bindInfoWindow(marker, map, infoWindow, html); 
      } 
      }); 
      } 

      function bindInfoWindow(marker, map, infoWindow, html) { 
      google.maps.event.addListener(marker, 'click', function() { 
      infoWindow.setContent(html); 
      infoWindow.open(map, marker); 
      }); 
      } 

      function downloadUrl(url, callback) { 
      var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

      request.onreadystatechange = function() { 
      if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
      } 
      }; 

      request.open('GET', url, true); 
      request.send(null); 
      } 

      function doNothing() {} 

      </script> 
      </head> 

      <body onLoad="load()"> 
       <div id="map"></div> 
      </body> 
      </html> 

, 코드, 마커가 표시 여부를 결정하는 빨강, 또는 녹색, 순수하고 필드 중 하나의 값이 '0'또는 '1'단순히 여부.

내가 원하는 것은 값이 '0'인지 '1'인지 '1보다 큰지'를 반영하여 마커의 색상을 결정하는 것입니다.

나는 제한된 지식으로 '> 1', '> = 1'을 사용해 보았습니다.

저는 누군가가 올바른 방향으로 나를 가리킬 수 있는지 여부를 알아낼 수 있는지 여부를 궁금해했습니다. 그래야 이것이 작동하도록 할 수 있습니다.

+0

값이 0인지 1인지 확인하는 코드가 보이지 않습니다. 올바른 코드를 붙여 넣었습니까? jsfiddle.net에 코드를 붙여넣고 링크를 제공 할 수 있습니까? 편집 : (값> = 1이 작동해야하지만, 작동하지 않는 코드의 전체 예제로 말하기가 더 쉬울 것입니다.) – plexer

+0

안녕하세요, 먼저 내 게시물을 읽고 회신 할 시간을내어 많은 감사드립니다. ,이 사과를 분명히하지 않기 위해 사과한다. 내가 말하는 라인은 맞춤 아이콘이 '0'또는 '1'의 값으로 할당되는 곳입니다. 내가 할 수 있기를 원하는 것은 '1'을 '1보다 크거나 같음'으로 변경하는 것입니다. 불행히도 성공하지 못하면서 '> = 1', '> 0', 'if (> = 1)'시도했습니다. 많은 감사와 친절한 안부. 크리스 – IRHM

답변

0

@IRHM - 답장을 보내 주셔서 감사합니다.

예제에서 '0'과 '1'은이 두 아이콘의 이름을 지정하는 방법 일뿐입니다. '고양이'와 '강아지'는 똑같이 유효한 이름입니다.

var customIcons = { 
    cat: { 
    icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
    shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
    }, 
    dog: { 
    icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png', 
    shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
    } 
}; 

아이콘을 계산할 때 선택한 이름 인 0 또는 1로 끝나기 때문에 코드가 오늘 작동합니다. '0'또는 '> 1'을 선택할 수 있도록 변경하려면 추가 논리를 추가해야합니다. 교체 :

var icon = customIcons[totalfinds] || {}; 

로 :

var icon = {}; 
if (totalFinds == 0) { 
    icon = customIcons[0]; 
} else if (totalFinds >= 1) { 
    icon = customIcons[1];  
} 

이 논리는 totalFinds의 값을 확인하고이 경우 '에 (제공 한 이름을 사용 customIcons에있는 아이콘 중 하나를 찾기 위해 그것을 사용 0 '또는'1 ').

+0

정말 고마워요. 귀하의 솔루션은 대우를받습니다. 다시 한 번 진심으로 감사 드리며 친절합니다. 크리스. – IRHM

관련 문제