манипулировать результатами геокодирования веб-сервисов через JavaScript? - PullRequest
2 голосов
/ 11 марта 2010

с помощью http://maps.google.com/maps/api/geocode/json?address=xyz мы получаем файл JSON Мне интересно, как я могу манипулировать результатами в JavaScript? Как мне создать объект результатов в JavaScript?

http://code.google.com/apis/maps/documentation/geocoding/index.html#JSONParsing это действительно не объясняет, как они получают myJSONResult

Ответы [ 2 ]

1 голос
/ 11 марта 2010

То, как вы получаете JSON, использует поиск AJAX. Это можно сделать с помощью JavaScript с ручным кодированием, но гораздо проще с помощью jQuery . Вот быстрый пример:

            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
            <script type="text/javascript">
            $(document).ready(function() {
                $.ajax({ url: "http://maps.google.com/maps/api/geocode/json",
                         type: "GET",
                         dataType: "json",
                         data: { address: "1600+Amphitheatre+Parkway,+Mountain+View,+CA", sensor: "false" },
                         success: function(data, textStatus, XMLHttpRequest) {
                             console.log(textStatus);
                             alert(data);
                         },
                         error: function(XMLHttpRequest, textStatus, errorThrown) {
                             console.log(textStatus);
                         }});
            });
            </script>

НО, НО это будет НЕ работать из-за той же политики происхождения . Обходной путь - использовать серверный язык по вашему выбору (Perl, PHP, ColdFusion, ASP) в качестве прокси. Таким образом, значением URL будет «yourproxy.php», «yourproxy.cfm», «yourproxy.asp» или что-то еще. Этот сценарий будет просто принимать запрос, который он получает, действовать как пользовательский агент, отправлять запрос в Google и извлекать ответ (так называемый URL, который является значением url в приведенном выше коде) и отправлять результаты в ваш сценарий.

Библиотека jQuery обрабатывает JSON-обработку для вас, или вы можете использовать информацию, предоставленную Bob вместе с AJAX, свернутым вручную, указанным выше. Обратите внимание, что для получения информации от Google AJAX, использующей вручную, потребуется то же прокси-решение.

Также обратите внимание, что API геокодирования, на который вы ссылаетесь, не предназначен для большого количества динамических запросов. Они ведут вас к клиентскому геокодеру API V2 , клиентскому геокодеру API V3 и API карт для геокодера Flash Client .

1 голос
/ 11 марта 2010

Вы можете использовать eval для анализа JSON в объект JavaScript, но это не рекомендуется из соображений безопасности. Используйте анализатор JSON , чтобы превратить строку JSON в объект JavaScript, которым вы можете манипулировать.

Использование eval:

myJSONResult = eval("{}");

Использование вышеупомянутого связанного парсера:

myJSONResult = JSON.parse("{}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...