КАК добавить случайные маркеры на карту, НО избегая моря? - PullRequest
3 голосов
/ 13 июня 2009

Игровая площадка Google Ajax API (http://code.google.com/apis/ajax/playground/?exp=maps#map_markers) предоставляет хороший пример добавления случайных маркеров на любую карту:

function initialize() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(37.4419, -122.1419), 9);

    // Add 10 markers to the map at random locations
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    for (var i = 0; i < 10; i++) {
      var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                              southWest.lng() + lngSpan * Math.random());
      map.addOverlay(new GMarker(point));
    }
  }
}

НО, если ваш LatLng находится рядом с морем (или если вы используете другой уровень Zoomlevel, чем предоставленный пример), как вы убедитесь, что ваш маркер не будет размещаться на море? Есть ли флаг, который я могу использовать, чтобы проверить, находится ли потенциальная широта случайной точки в море или на суше ???

Txs заранее.

Hubert

Ответы [ 3 ]

5 голосов
/ 15 июня 2009

Одной из возможностей будет отправка обратного запроса геокода для каждой сгенерированной вами точки. Точки над водой вернут код состояния «G_GEO_UNKNOWN_ADDRESS» (602). Тем не менее, вам необходимо тщательно проверить его, чтобы убедиться, что он будет работать. Возможно, что несколько мест на земле могут быть возвращены как неизвестные.

2 голосов
/ 13 июня 2009

Я не знаю об API Google Планета Земля, но вы можете достичь этого другим способом. Загрузите карту Nasa из голубого мрамора батиметрия и создайте растровое изображение морских районов. Затем сопоставьте эти координаты с long / lat, и у вас есть способ проверить моря и озера, которые вы можете использовать вместе с API карт Google.

0 голосов
/ 10 февраля 2010

Я создаю программу на C #, которая принимает входные данные пользователей в нужное место, а затем, основываясь на этом, указывает им случайное местоположение, соответствующее их спецификациям.

"http://maps.google.com/maps/geo?q=29,-55" - это веб-страница, которую я буду использовать, чтобы определить, находится ли она на суше или нет ... взгляните на конкретную строку" Точность: 0 "результатов страницы. Если это точность 0, то это в океане. Если это 1 или выше, то на суше.

...