2013-02-28 34 views
19

Tôi hiện đang làm việc với Google Maps và mọi thứ hoạt động tốt ngay bây giờ. Nhưng tôi muốn thay đổi kiểu dáng của InfoWindow. Tôi đã nghiên cứu nhưng chưa tìm thấy bất kỳ điều gì hữu ích để giúp tôi hiểu InfoWindow (thậm chí không phải Tài liệu API.)Thông tin tạo kiểuWindow với API Google Maps

Vì vậy; làm thế nào để thay đổi kiểu dáng như màu sắc, nền, đường viền và vv của hộp InfoWindow trong bản đồ của tôi?

Xin cảm ơn trước.

Heres mã của tôi:

<!DOCTYPE html> 
<head> 
    <title>Google Maps Example</title> 
    <script src='http://code.jquery.com/jquery.min.js' type='text/javascript'></script> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 font-family: Helvetica;} 
     #map_canvas { height: 100% } 
     .InfoWindow { 
     background: #000; 
     } 
    </style> 
</head> 
<body> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
var infowindow = null; 
    $(document).ready(function() { initialize(); }); 

    function initialize() { 

     var centerMap = new google.maps.LatLng(59.9149, 10.72974); 

     var myOptions = { 
      zoom: 14, 
      center: centerMap, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 

     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     setMarkers(map, sites); 
     infowindow = new google.maps.InfoWindow({ 
       content: "loading..." 
      }); 
    } 


    var sites = [ 
    ['Mount Evans', 59.934615,10.743392, 4, '<div class="InfoWindow"><b>This is Mount Evans.</b></div>'], 
    ['Irving Homestead', 40.315939, -105.440630, 2, 'This is the Irving Homestead.'], 
    ['Badlands National Park', 43.785890, -101.90175, 1, 'This is Badlands National Park'], 
    ['Flatirons in the Spring', 39.99948, -105.28370, 3, 'These are the Flatirons in the spring.'] 
    ]; 

    var image = new google.maps.MarkerImage(
     'http://mapicons.nicolasmollet.com/wp-content/uploads/mapicons/shape-default/color-8c4eb8/shapecolor-color/shadow-1/border-dark/symbolstyle-white/symbolshadowstyle-dark/gradient-no/bar.png', 
     new google.maps.Size(30,37) 
    ); 

    function setMarkers(map, markers) { 

     for (var i = 0; i < markers.length; i++) { 
      var sites = markers[i]; 
      var siteLatLng = new google.maps.LatLng(sites[1], sites[2]); 
      var marker = new google.maps.Marker({ 
       position: siteLatLng, 
       map: map, 
       title: sites[0], 
       zIndex: sites[3], 
       html: sites[4], 
       icon: image 

      }); 

      var contentString = "Some content"; 

      google.maps.event.addListener(marker, "click", function() { 
       infowindow.setContent(this.html); 
       infowindow.open(map, this); 
      }); 
     } 
    } 
</script> 
</head> 
    <body onload="initialize()"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
    </body> 
</html> 

Edit: Nó không giống như nó có thể để tạo kiểu InfoWindow (chỉ cần đầu vào). Tuy nhiên, Infobox có thể làm được điều này.

+1

Bạn có thể muốn ghé thăm [Link] (http://stackoverflow.com/questions/3610884/changing-background-color-in-google-map-infowindow) – Ankit

+0

@Ankit Cảm ơn bạn. – sjarmenitt

+0

bạn cũng có thể làm điều đó với [** InfoBubble **] (http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html) quá (cùng một trang web). – johntrepreneur

Trả lời

-2

Từ API: https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows

nội dung của InfoWindow có thể chứa hoặc một chuỗi văn bản, một đoạn của HTML, hoặc một phần tử DOM chính nó.

Bạn có thể chuyển HTML theo kiểu hoặc bạn có thể tự tạo InfoWindow, sau đó kéo nó vào JS làm đối tượng.

+13

Điều này dường như không giải quyết được vấn đề đặt ra bởi OP theo bất kỳ cách nào. Vấn đề ở đây là tạo kiểu cho phần của infowindow được tạo ra bởi google, không phải nội dung bạn đưa vào nó, mà OP đã biết cách tạo kiểu. Và bất cứ điều gì bạn vượt qua như nội dung, vấn đề không thay đổi. Hay tôi đang thiếu một cái gì đó? – matteo

4

Bạn có thể thay đổi nó với kịch bản java như sau

lớp
var contentString = '<div style="width: 94.2%; padding-left:10px; height: 25px;float: left;color: #FFF;background: #ed1e79;line-height: 25px;border-radius:5px 5px 0px 0px;"><strong><b>"You feild"</b></strong></div><div style="clear:both;height:0px;"><div style="float:left;width:90%;padding:5px 10px;border:1px solid #ccc;border-top:none;border-radius:0px 0px 5px 5px;"><div style="float:left;color:#666;font-size:18px;font-weight:bold;margin:5px 0px;"> <div style="padding: 0px;">]]..product_list[i].category..[[</div></div><div style="clear:both;height:0px;"></div><div style="float:left;line-height:18px;color:#666;font-size:13px;">"You feild"</div><div style="clear:both;height:0px;"></div><form action=\"navigat:"You feild"\"><input type=\"submit\"/ style=\"background:#7e7e7e;float:right;color:#FFF;padding:5px 7px;font-size:10px;font-weight:bold;border:none;margin:5px 0px; border-radius:0px !important;\" value=\"More Info\" ></form></div></div>'; 

    var infowindow = new google.maps.InfoWindow({content:contentString}); 
+0

Bạn không nên sử dụng tên lớp và biểu định kiểu? –

+0

@ToniMichelCaubet Nó có thể mất nhiều mã hơn, vì vậy tốt hơn để giữ nó ngắn –

+0

Độ dài của mã nó không quan trọng, dễ đọc, bột .. –

9

sử dụng .gm kiểu .gm-style-iw cho phong cách văn bản ví dụ:

.gm-style .gm-style-iw { 
    font-size: 16px; 
    font-weight: bold; 
    font-family: sans-serif; 
    text-transform: uppercase; 
} 
Các vấn đề liên quan