Compartilhar via


Etapa 2: Adicionar o código para a pesquisa federada virtual Conector do mapa da Terra

Observação

Este tópico descreve uma funcionalidade que parte o Infrastructure Update for Microsoft Office Servers.  Para baixar a atualização, consulte Descrição da atualização de infra-estrutura SharePoint Server 2007: 15 º de julho de 2008.

O seguinte codificar passa uma consulta usuário para o serviço da Web MapPoint e, em seguida, publica as coordenadas localidade em uma alimentação RSS que serve como o conector.

O completo codificar para esse exemplo está disponível em Federated Search Connector for Virtual Earth Maps Sample.

Criar a alimentação de RSS

  1. Criar um arquivo nomeado Map.aspx (uma renomeação default.aspx ou criando uma nova forma da Web).

  2. No arquivo Map.aspx, adicionar ou alteração de propriedade página Inherits Inherits para que ele irá usar a nova classe você criará no arquivo Map.aspx.cs (code-behind).

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="Map" %>
    
  3. No arquivo de Map.aspx.cs, adicionar o seguinte diretivas espaço para nome.

    using System;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Text;
    using System.IO;
    using System.Web.Services.Protocols;
    using net.mappoint.staging;
    
  4. Modificar o declaração de classe usar como padrão de modo que ele usa o nome classe que é usado para o conector.

    public partial class Map : System.Web.UI.Page
    
  5. Substituir o usar como padrão Page_Load método Page_Load o seguinte codificar.

        protected override void Render(HtmlTextWriter writer)
        {
            //Retrieve query term from query string; construct search url
            string queryTerm = Request.QueryString["q"];
            Response.ContentType = "text/xml";
            //Write the RSS document to the HTMLTextWriter
            writer.Write(GetResultsXML(queryTerm));
        }
    
  6. Adicione a codificar para o GetResultsXML método GetResultsXML, que passa o termo consulta para o GetMapPointMap GetMapPointMap método. Se o termo consulta é um válido localidade para quais latitude e longitude coordenadas estão disponível, ele cria uma alimentação RSS que publica coordenadas da localidade.

        //Return results in RSS format for federated location
        private string GetResultsXML(string queryTerm)
        {
            //Query MapPoint Web service with the URL's query string
            FindResults myFindResults = GetMapPointMap(queryTerm);
            //Begin writing RSS document
            StringBuilder resultsXML = new StringBuilder();
            resultsXML.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            resultsXML.Append("<rss version=\"2.0\">");
            resultsXML.AppendFormat("<channel><title><![CDATA[HTML to RSS Conversion: {0}]]></title><link/><description/><ttl>60</ttl>", queryTerm);
            //Populate RSS feed with latitude and longitude coordinates, if available, for the first location found.
            if (myFindResults.NumberFound > 0 )
            {
                string title = "Map of " + queryTerm;
                string link = "http://maps.live.com/?q=" + queryTerm;
                double latitude = myFindResults.Results[0].FoundLocation.LatLong.Latitude;
                double longitude = myFindResults.Results[0].FoundLocation.LatLong.Longitude;
                //string description = "&lt;img src=&quot;" + RenderMap(latitude, longitude) + "&quot;&gt;";
                string description = title;
                resultsXML.AppendFormat("<item><title>{0}</title><latitude>{3}</latitude><longitude>{4}</longitude></item>", title, link, description, latitude, longitude);
            }
    
            //Complete RSS document
    
            resultsXML.Append("</channel></rss>");
            return resultsXML.ToString();
        }
    
  7. Adicione a codificar para o GetMapPointMap método GetMapPointMap. Este método assume que a seqüência de caracteres da consulta passado pelo URL é que um válido estruturado endereço, constituída de endereço de rua, cidade e estado. Se o seqüência de caracteres da consulta não for um válido endereço, o método retornará um vazio resultado. O método procura no arquivo web.config do seu site para válido credenciais MapPoint.

        private FindResults GetMapPointMap(string queryTerm)
        {
    
            // Create and populate Address object for the FindAddress() operation.
            Address myAddress = new Address();
            myAddress.FormattedAddress = queryTerm;
    
            // Set the ThresholdScore option value to zero so maximum results are returned.
            FindOptions myFindOptions = new FindOptions();
            myFindOptions.ThresholdScore = 0;
    
            // Set up the specification object.
            FindAddressSpecification findAddressSpec = new FindAddressSpecification();
            findAddressSpec.InputAddress = myAddress;
            findAddressSpec.Options = myFindOptions;
            findAddressSpec.DataSourceName = "MapPoint.NA";
    
            // Create a FindResults object to store the results returned by FindAddress.
            FindServiceSoap myFindService = new FindServiceSoap();
            // Set credentials for MapPoint Web service -- retrieve and decrypt the user/password combination from the web.config file.
            myFindService.Credentials = new System.Net.NetworkCredential(ConfigurationSettings.AppSettings["mpUser"], ConfigurationSettings.AppSettings["mpPwd"]);
            myFindService.PreAuthenticate = true;
            FindResults myFindResults = new FindResults();
    
            // Create a FindResults object to store the results returned by FindAddress.
            try
            {
                myFindResults = myFindService.FindAddress(findAddressSpec);
            }
    
            catch (Exception ex)
            {
                //Handle exception
            }
    
            return myFindResults;
    
        }
    
  8. Adicione as credenciais usuário MapPoint necessários ao seu arquivo web.config. O serviço da Web MapPoint procura exigido entradas no system.net e applicationSettings applicationSettings nós de seu arquivo web.config. Essas entradas são adicionadas para você quando você adicionar o serviço da Web MapPoint para seu site. A codificar nesse exemplo também pesquise as credenciais usuário MapPoint guardados neste arquivo. Adicione as seguinte entradas de nó configuration configuração do arquivo web.config do seu site e fornecer valores o apropriado para o mpUser e mpPwd mpPwd chaves.

      <appSettings>
        <add key="mpUser" value="user"/>
        <add key="mpPwd" value="password"/>
      </appSettings>
    
  9. Implante esta solução para seu site O Office SharePoint Server 2007 ossossshort. Salvar o conteúdo dessa solução no seu Diretório _layouts _layouts. Para obter mais informações, consulte Como a: Criar um aplicativo da Web em um site da Web SharePoint.

  10. Carregar o arquivo Map.aspx em seu leitor de RSS ou navegador da Web para verificar se ele está criando uma alimentação de RSS. Adicione endereços testar (? q = endereço ) a URL e exibição de origem para verificar que a alimentação está retornando os resultados.

As seguinte etapas

Etapa 3: Criar o virtual local do mapa da terra e personalizar a XSL

Consulte também

Outros recursos

Etapa 1: Configurar o projeto para a pesquisa federada virtual Conector do mapa da Terra