Вопрос Google Map (показать только одну страну) [дублировать]

Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.

Вот пример того же:

var async = require("async");

// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
    // some asynchronous operation
    $.ajax({
        url: '...',
        success: function(response) {
            result.response = response;
            _callback();
        }
    });
});

async.parallel(asyncTasks, function(){
    // result is available after performing asynchronous operation
    console.log(result)
    console.log('Done');
});

Я использую объект result для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.

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

0
задан Melvin Koopmans 24 January 2015 в 15:22
поделиться

1 ответ

  1. перейдите к http://www.gadm.org/download , загрузите файл adm0 для Нидерландов
  2. Объедините это многоугольник (как внутреннее кольцо (кольца)) с полигоном, который покрывает всю землю
  3. , используйте инструмент обмотки обмотки , чтобы отменить любые внутренние полигоны, которые не вращаются вокруг внешнего ring.
  4. закрепить полученный kml, переименовать в kmz. Отобразить на карте с помощью geoxml3

Код:

function initialize() {
    var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
        center: new google.maps.LatLng(85.4419, -122.1419),
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    var geocoder = new google.maps.Geocoder();
    var geoXml = new geoXML3.parser({
                    map: map,
                    zoom: false, 
                 });
    geoXml.parse("http://www.geocodezip.com/geoxml3_test/kmz/nld_adm0_inverted.kmz");
    google.maps.event.addListener(geoXml,'parsed', function() {
      geocoder.geocode( { 'address': "Netherlands"}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.fitBounds(results[0].geometry.viewport);
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });    
    })
}
google.maps.event.addDomListener(window, "load", initialize);

Рабочий пример

Example of map [/g8]

Чтобы ограничить его всегда отображаемым на карте, см. эту страницу из учебник v2 Mike Williams

рабочий пример

5
ответ дан geocodezip 27 August 2018 в 07:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: