2011-05-18 84 views
0

我的代碼顯示了shops.xml文件的所有地址。但我想顯示在谷歌地圖只是地址(shops.php)與輸入的地址從xml文件中選擇元素

shops.xml文件匹配:

<shops> 
<shop> 
<name>Galaxy</name> 
<address>72 Callander Road, Noble Park</address> 
</shop> 
<shop> 
<name>Home</name> 
<address>7 Close Avenue, Dandenong </address> 
</shop> 
</shops> 

shop.htm:

<body> 
<form> 
Ente Address: <input type="text" name="address" size="40" /> 
<input name="submit" type = "button" onClick = "load()" value = "Search" /> 
</form> 

<div id="map" style="width: 500px; height: 400px"></div> 
<div id="info"> </div> 

shop.js

function load() 
    { 
    var map = new GMap2(document.getElementById("map"));   
    map.setCenter(new GLatLng(-37.816667,144.966667), 10);  
    map.addControl(new GSmallMapControl()); 
    map.addControl(new GMapTypeControl()); 

    var geocoder = new GClientGeocoder(); 

    GDownloadUrl("shops.xml", function(data) { 
     var addr =document.getElementsByName['address']; 
     var xml = GXml.parse(data); 
    var shop = xml.documentElement.getElementsByTagName("shop"); 
     for (var i = 0; i < shop.length; i++) { 
     var addre= shop[i].getElementsByTagName("address"); 
     addre = addre[0].childNodes[0].nodeValue; 
     if(addre==addr) 
     var address=addre; 
     geocoder.getLocations(address, addToMap);} 
    }); 
    } 


function addToMap(response) 
    { 
    place = response.Placemark[0]; 
    point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]); 

    function createMarker(point,address) 
    {  
    var marker = new GMarker(point);  
    GEvent.addListener(marker, "click", function() 
    {  
    map.openInfoWindowHtml(point, address);  
    });  
    return marker; 
    } 
    map.addOverlay(createMarker(point, response.name)); 
    } 
+0

問題是? – Headshota 2011-05-18 04:54:45

+0

@Headshota的問題是,我不能顯示google地圖上與輸入地址相匹配的shops.xml地址。我的代碼顯示所有地址 – carina 2011-05-18 04:56:27

回答

0

我想你忘了把條件放在這個匹配地址的函數中。

- >GDownloadUrl ...在這個你必須檢查條件wheather它匹配的XML地址。
- >把你的值變成像var addr = document.getElementsByName ['adr'];
- >比必須通過geocoder.getLocations(address, addToMap);

+0

把你的價值在js變量var addr = document.getElementsByName ['adr'];將它與地址 – Rikesh 2011-05-18 05:00:55

+0

@ricky比較,我在js文件中做了一些更改,但現在它在googla地圖上什麼也沒有顯示 – carina 2011-05-18 08:33:03