Как я могу создать область поиска рисования с закрытым дном, как Yelp.com? - PullRequest
0 голосов
/ 30 марта 2012

Я написал следующий код в версии 3 API:

  var polyOptions = {
      strokeWeight: 0,
      fillOpacity: 0.45,
      editable: true
    };
    // Creates a drawing manager attached to the map that allows the user to draw
    // markers, lines, and shapes.
    drawingManager = new google.maps.drawing.DrawingManager({
      drawingMode: google.maps.drawing.OverlayType.POLYGON,
      markerOptions: {
        draggable: true
      },
      polylineOptions: {
        editable: true
      },
      rectangleOptions: polyOptions,
      map: map
    });

    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
        if (e.type != google.maps.drawing.OverlayType.MARKER) {
        // Switch back to non-drawing mode after drawing a shape.
        drawingManager.setDrawingMode(null);

        // Add an event listener that selects the newly-drawn shape when the user
        // mouses down on it.
        var newShape = e.overlay;
        newShape.type = e.type;
        google.maps.event.addListener(newShape, 'click', function() {
          setSelection(newShape);
        });
        setSelection(newShape);
      }
    });

    // Clear the current selection when the drawing mode is changed, or when the
    // map is clicked.
    google.maps.event.addListener(drawingManager, 'drawingmode_changed', clearSelection);
    google.maps.event.addListener(map, 'click', clearSelection);
    google.maps.event.addDomListener(document.getElementById('delete-button'), 'click', deleteSelectedShape);

    buildColorPalette();
}

Это займет некоторую работу, но я хочу использовать пользовательские области поиска поиска, такие как Yelp. Мне нужно закрыть дно, и я хочу снять контроль над ничьей. И мне нужна внешняя ссылка для рисования прямоугольника, как Yelp вне карты Draw Search Area.

1 Ответ

0 голосов
/ 03 июня 2012

Вы пропустили математику.Вот начало:

Используя Сферический закон косинусов или Haversine, вычислите границы прямоугольника, а затем проверьте, какие из ваших маркеров находятся в границах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...