2015-09-02 4 views
0

Мы внедрили отличную библиотеку GMLib в наше приложение Delphi 2007, все работает отлично. Нам нужно использовать лицензию Google Maps for Work (и нужно увеличить квоту). Мы не знаем, как это можно реализовать в базовом JavaScript.Идентификатор и подпись клиента Google Карт для работы

К сожалению, у автора GMLib не так много недавней активности. Кто-нибудь знает, будут ли они поддерживать этот код в ближайшем будущем?

+0

У GMMap есть свойство APIKey. Введите здесь свой ключ API – cadetill

ответ

0

В конце концов мы нашли ответ на этот себя:

  1. map.html в папке Resources нуждается в изменении от api_key клиенту

    src="http://maps.google.com/maps/api/js?v=3.17&key=API_KEY&etc. 
    
    src="http://maps.google.com/maps/api/js?v=3.17&client=API_KEY&etc. 
    

и файл ресурсов нуждается в восстановлении

  1. GMMap.API Теперь ключ может быть установлен на идентификатор клиента (выдан Google, в форме gme-myclientid. Google также требуют реферера URL, которые должны быть зарегистрированы на клиентском портале, это сочетание идентификатора клиента, и ссылающейся URL, который получает доступ

  2. (важный бит) GMMapVCL.pas нуждается в обновлении

    procedure TGMMap.LoadBlankPage; 
    begin 
        if not (FWebBrowser is TWebBrowser) then Exit; 
    
        FDocLoaded := False; 
        //TWebBrowser(FWebBrowser).Navigate('about:blank'); 
        TWebBrowser(FWebBrowser).HandleNeeded; 
        TWebBrowser(FWebBrowser).Navigate('http://myvalidreferrerurl'); 
    end; 
    

Возможно, можно зарегистрировать about.blank в качестве действительного URL-адреса реферера, но это эффективно откроет доступ ко всем, кто знает идентификатор клиента. Вместо этого убедитесь, что при загрузке GMMap нет документа в элементе управления TWebBrowser, что приведет к выполнению вышеуказанной процедуры.

Смежные вопросы