Google Maps API V3 - выпуск Javascript - PullRequest
0 голосов
/ 01 июня 2011

У меня есть встроенный сайт Google Mapusing api V3, который показывает наши 4 офиса, затем вы можете ввести свой почтовый индекс и проверить расстояние между вами и офисом, это работает!

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

У меня есть следующее:

        geocoder = new google.maps.Geocoder(); // creating a new geocode object

    // getting the two address values
    address1 = document.getElementById("addresses1").value;
    distance1 = document.getElementById("distance").value;

    // finding out the coordinates
    if (geocoder) 
    {
        geocoder.geocode( { 'address': address1}, function(results, status) 
        {
            if (status == google.maps.GeocoderStatus.OK) 
            {
                //location of first address (latitude + longitude)
                location1 = results[0].geometry.location;

                // Location Marker
                var marker = new google.maps.Marker({
                  map: map,
                  position: location1,
                  title: 'Random text'
                });
                // Add circle overlay and bind to marker
                var circle = new google.maps.Circle({
                  map: map,
                  radius: distance1,
                  strokeWeight: 0,
                  fillColor: '#AA0000'
                });
                circle.bindTo('center', marker, 'position');


            } else 
            {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });
    }

Мне удалось заставить все работать, кроме $distance1.Что должно произойти, так это то, что пользователь выбирает расстояние из формы: скажем, 10 миль (заданных в метрах для Google Maps), когда они нажимают «Отправить», круг рисуется с радиусом 10 миль.

В качестве кодастоит, точка нарисована, но круг не появляется.

Если я, например, заменю distance1 = document.getElementById("distance").value; на distance1 = 16999;, то появляется круг и он отлично работает.

Мнеэто должно означать, что с содержимым distance1 что-то не так, когда оно извлекается из формы.Я просто проверил NaN-тест, и он сообщает, что контент - это число.

У меня такой вопрос (очень затянуто - извините за это), у вас есть идея, как получить distance1, чтобы получить значение из формы.

// Add circle overlay and bind to marker var circle = new google.maps.Circle({ map: map, radius: distance1, strokeWeight: 0, fillColor: '#AA0000' });

Речь идет о radius: distance1

1 Ответ

1 голос
/ 01 июня 2011

Может помочь убедиться, что это число, а не строка.

distance1 = parseFloat(document.getElementById("distance").value);

(parseInt, вероятно, также будет работать нормально, так как он в метрах, а дробные метры не будут иметь большого значения)

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