Google Maps API V3:根据搜索if / else创建标记HTML

时间:2012-07-17 19:56:48

标签: google-maps google-maps-api-3 google-geocoding-api

我在这里设置了“商店定位器”:

http://www.brynei.com/fertdealer_map_bry.htm

lat,lng,name,address,csz和phone信息存储在mySQL数据库中。如果输入邮政编码13165,则定位器可以正常工作。但是,我需要限制一系列邮政编码以显示一个标记,并显示一系列邮政编码(66000到69999)的标记html。这部分实际上是使用函数searchLocations()部分使地图居中,但我需要一些帮助函数createMarker(latlng,name,address,csz,phone)和函数createOption(name,distance,num)部分。 / p>

目前,如果您使用邮政编码67501,地图将居中但不会显示标记。我需要它将标记放在特定位置,并将公司名称公司,123 Main St,Anywhere KS 67501,555-555-1234作为标记HTML。如果在66000到69999范围内使用拉链,那么该标记将是静态的。

如果这是一个更简单的解决方案,我也可以在数据库方面做点什么。

感谢任何帮助。

这是我遇到问题的3个部分(功能):

function searchLocations() {
var address = document.getElementById("addressInput").value;
var mylatlng = new google.maps.LatLng(37.928552, -97.898658);
var geocoder = new google.maps.Geocoder();
   if (address >= 66000 && address <= 69999) {
       map.setCenter(mylatlng);
       map.setZoom(10);        }
       else { 
           geocoder.geocode({address: address}, function(results, status) {       
            if (status == google.maps.GeocoderStatus.OK) {
               searchLocationsNear(results[0].geometry.location);   } 
    else {
        alert(address + ' not found');
   }
 });
 }}

function createMarker(latlng, name, address, csz, phone) {
  var html = "<font face = 'arial'>" + "<b>" + name + "</b> <br/>" + address + "<br/>" + csz + "<br/>" + phone + "</font>";
  var marker = new google.maps.Marker({
    map: map,
    position: latlng
  });
  google.maps.event.addListener(marker, 'click', function() {
    infoWindow.setContent(html);
    infoWindow.open(map, marker);
  });
  markers.push(marker);
} 


function createOption(name, distance, num) {
  var option = document.createElement("option");
  option.value = num;
  option.innerHTML = name + "(" + distance.toFixed(1) + ")";
  locationSelect.appendChild(option);
}

0 个答案:

没有答案