Можно ли встраивать боковую панель с Google Maps? - PullRequest
2 голосов
/ 26 июня 2009

Мы хотели бы использовать Google Maps для отслеживания местных продаж в гараже. Мы создали карту ( см. Здесь ) и хотели бы разместить эту карту на нашем веб-сайте. Однако, когда мы это сделаем, мы потеряем боковую панель карты, которая содержит список всех продаж гаража.

Мы хорошо знакомы с тем, как встраивать Google; они сделали процесс довольно простым. Однако, есть ли способ, которым мы можем встроить карту и сохранить список продаж гаража на боковой панели?

Ответы [ 6 ]

4 голосов
/ 26 июня 2009

Насколько мне известно, лучшим способом было бы создать свой собственный контейнер продаж и связать их с картой, которую вы заполняете. Я предполагаю, что вы создаете и вводите свои данные на сайте Google и используете функцию встраивания, что означает, что мои ответы значительно больше работают.

Вам понадобится исходный источник данных и использовать API Карт для создания карты и боковой панели.

Ваш iFrame больше не будет использоваться, вы будете кодировать свое собственное решение. Если вы делали JavaScript раньше, это действительно довольно легко, если у вас нет хороших примеров.

2 голосов
/ 25 января 2012

этот урок http://econym.org.uk/gmap/basic2.htm показывает, как это сделать, и предоставляет код (который я воспроизводил с любезного разрешения авторов: Community Javascript Team http://www.bisphamchurch.org.uk)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Google Maps</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAPDUET0Qt7p2VcSk6JNU1sBSM5jMcmVqUpI7aqV44cW1cEECiThQYkcZUPRJn9vy_TWxWvuLoOfSFBw" type="text/javascript"></script>
  </head>
  <body onunload="GUnload()">


    <!-- you can use tables or divs for the overall layout -->

    <table border=1>
      <tr>
        <td>
           <div id="map" style="width: 550px; height: 450px"></div>
        </td>
        <td width = 150 valign="top" style="text-decoration: underline; color: #4444ff;">
           <div id="side_bar"></div>
        </td>
      </tr>

    </table>
    <a href="basic2.htm">Back to the tutorial page</a>


    <noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b> 
      However, it seems JavaScript is either disabled or not supported by your browser. 
      To view Google Maps, enable JavaScript by changing your browser options, and then 
      try again.
    </noscript>


    <script type="text/javascript">
    //<![CDATA[

    if (GBrowserIsCompatible()) {

      // this variable will collect the html which will eventually be placed in the side_bar
      var side_bar_html = "";

      // arrays to hold copies of the markers and html used by the side_bar
      // because the function closure trick doesnt work there
      var gmarkers = [];


      // A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        // save the info we need to use later for the side_bar
        gmarkers.push(marker);
        // add a line to the side_bar html
        side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><br>';
         return marker;
      }


      // This function picks up the click and opens the corresponding info window
      function myclick(i) {
        GEvent.trigger(gmarkers[i], "click");
      }


      // create the map
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng( 43.907787,-79.359741), 8);

      // add the points    
      var point = new GLatLng(43.65654,-79.90138);
      var marker = createMarker(point,"This place","Some stuff to display in the<br>First Info Window")
      map.addOverlay(marker);

      var point = new GLatLng(43.91892,-78.89231);
      var marker = createMarker(point,"That place","Some stuff to display in the<br>Second Info Window")
      map.addOverlay(marker);

      var point = new GLatLng(43.82589,-78.89231);
      var marker = createMarker(point,"The other place","Some stuff to display in the<br>Third Info Window")
      map.addOverlay(marker);


      // put the assembled side_bar_html contents into the side_bar div
      document.getElementById("side_bar").innerHTML = side_bar_html;

    }

    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }

    // This Javascript is based on code provided by the
    // Community Church Javascript Team
    // http://www.bisphamchurch.org.uk/   
    // http://econym.org.uk/gmap/

    //]]>
    </script>
  </body>

</html>
1 голос
/ 09 апреля 2012

Я хорошо знаком с API Карт Google v3 с помощью Javascript, и я успешно экспериментировал с множеством различных примеров сценариев, но я пришел к выводу, что лучший (и самый быстрый) метод создания встроенных Карты - с боковыми панелями и множеством других опций - это перейти на http://www.mymapsplus.com/AddMyMap (спасибо Крису Б.) и сделать пожертвование в размере 10 фунтов стерлингов, чтобы избавиться от рекламы на сгенерированных картах - см., например, http://www.hope -projects.org.uk / узел / 41 . Их страница редактирования позволяет вам добавить или изменить практически любую опцию, о которой вы только могли подумать, с помощью нескольких кликов.

0 голосов
/ 22 августа 2009

Еще один сайт, который будет генерировать вашу карту с боковой панелью, это mapalist.com .

0 голосов
/ 26 июня 2009

Я нашел один сайт, который будет генерировать вашу карту с боковой панелью, но если вам нужен больший контроль, вам нужно будет создать собственную карту, как предложили другие.

http://www.mymapsplus.com/AddMyMap

http://www.mapchannels.com/

0 голосов
/ 26 июня 2009

То, что вы хотите сделать, требует использования API MAPS, но это не очень сложно, если вы знаете некоторый JavaScript. По сути, загрузите точки данных в массив Javascript, нанесите их на карту, а затем заполните HTML-код информацией о массиве.

Эта ссылка - страница, которую я недавно написал, которая выполняет вышеприведенное, а также динамически повторно заполняет массив из БД, когда пользователь перетаскивает карту (в настоящее время почти нет CSS).

карта с динамическими ссылками

Рад ответить на любые комментарии.

P.S. Прикольная карта!

Тим

...