Local Content
Description
Offrez une compréhension complète de l'emplacement de toute propriété aux États-Unis et au Canada, ainsi qu'un aperçu des caractéristiques qui comptent le plus pour les acheteurs et les locataires.
Pour des conseils, astuces et bonnes pratiques pour la mise en œuvre de Local Content, consultez notre Guide de mise en œuvre.


Installation
Nous recommandons une hauteur d'au moins 700 px pour une expérience utilisateur optimale.
Le SDK affichera la vue mobile lorsque la largeur est inférieure à 640 px. Il est recommandé de prévoir suffisamment d'espace pour que la carte soit entièrement visible tout en permettant à la barre latérale et au calculateur de temps de déplacement de rester visibles sur ordinateur de bureau.
Nos produits SDK sont servis à partir d'une source unique.
- React
- React Native
- Vanilla JavaScript
Les SDK sont conçus pour fonctionner avec React et d'autres cadriciels déclaratifs.
D'abord, installez le script d'entrée avec npm, yarn ou pnpm :
npm i --save @local-logic/sdks-js
yarn add @local-logic/sdks-js
pnpm add @local-logic/sdks-js
Exemple
import { useRef, useEffect } from "react";
import LLSDKsJS from "@local-logic/sdks-js";
const globalOptions = {
locale: "en", // Si disponible, changer pour anglais ou français
appearance: {
// Ajoutez ici toute autre modification d'apparence
// Consultez la section "Appearance" ci-dessous pour la liste des options disponibles.
variables: {
"--ll-color-primary": "#fd3958",
"--ll-color-primary-variant1": "#d5405b",
"--ll-font-family": "Avenir, sans-serif"
}
}
};
const localLogicClient = LLSDKsJS("your-api-key-here", globalOptions);
function LocalContentSDKComponent() {
const containerRef = useRef(null);
useEffect(() => {
if (!containerRef.current) {
return;
}
const sdkOptions = {
lat: 45.5282164, lng: -73.5978527
// ...Autres options propres au SDK
}
const sdkInstance = localLogicClient.create(
"local-content",
containerRef.current,
sdkOptions,
);
// Il est important de détruire l'instance du SDK lorsque le composant est démonté.
return () => {
sdkInstance.destroy();
}
}, []);
return (
<div
ref={containerRef}
style={{
// La hauteur dépend du SDK que vous implémentez
height: "700px",
width: "100%",
}}
/>
);
}
export default LocalContentSDKComponent;
Le composant SDK React Native de Local Logic vous permet d'ajouter facilement l'un de nos SDK à vos applications natives Android et iOS à l'aide de React Native.
D'abord, installez le script d'entrée avec npm, yarn ou pnpm :
npm i --save @local-logic/sdks-js
yarn add @local-logic/sdks-js
pnpm add @local-logic/sdks-js
Installer la dépendance React Native Webview
React Native Webview est utilisé pour porter les SDK Local Logic vers React Native.
Expo CLI
Installez la version prise en charge de react-native-webview pour les applications Expo à l'aide d'Expo CLI.
npx expo install react-native-webview
React Native CLI
Installez react-native-webview à l'aide du gestionnaire de paquets de votre projet :
npm i --save react-native-webview
yarn add react-native-webview
pnpm add react-native-webview
Si vous utilisez CocoaPods, dans le répertoire ios/ ou macos/, exécutez :
pod install
Utilisation
Le composant React Native accepte les mêmes options que nos SDK Web par l'intermédiaire de ses propriétés options, appearanceOptions et renderOptions.
import LLSDKs from "@local-logic/sdks-react-native";
const globalOptions = {
locale: "en", // Changer pour anglais ou français
appearance: {
// Ajoutez ici toute autre modification d'apparence
// Consultez la section "Appearance" ci-dessous pour la liste des options disponibles
variables: {
"--ll-color-primary": "#fd3958",
"--ll-color-primary-variant1": "#d5405b",
"--ll-font-family": "Avenir, sans-serif"
}
}
};
const sdkOptions = {
lat: 45.5282164, lng: -73.5978527
// ...Autres options propres au SDK
};
<LLSDKs
apiKey="your-api-key-here"
sdkType="local-content"
options={sdkOptions}
appearanceOptions={globalOptions}
renderOptions={{ lazy: false }}
/>
Le script est disponible aux formats umd et es à partir du CDN de Local Logic : https://sdk.locallogic.co/sdks-js/<VERSION>/index.<FORMAT>.js
<VERSION> est le dernier numéro de version du script (que vous pouvez trouver sur npm), et <FORMAT> est soit umd, soit es.
Exemple
<!DOCTYPE html>
<html>
<head>
<title>SDK Javascript Example</title>
<meta charset="UTF-8" />
</head>
<body>
<script
async
src="https://sdk.locallogic.co/sdks-js/<version>/index.umd.js"
onload="loadLocalContentSDK()"
></script>
<style>
#local-content-widget {
height: 700px;
width: 100%;
}
</style>
<!--REMARQUE : Si vous implémentez plusieurs SDK, assurez-vous de créer des ID uniques pour chacun-->
<div id="local-content-widget"></div>
<script>
const globalOptions = {
locale: "en", // Changer pour anglais ou français
appearance: {
// Ajoutez ici toute autre modification d'apparence
// Consultez la section "Appearance" ci-dessous pour la liste des options disponibles
variables: {
"--ll-color-primary": "#fd3958",
"--ll-color-primary-variant1": "#d5405b",
"--ll-font-family": "Avenir, sans-serif"
}
}
};
function loadLocalContentSDK() {
// Votre clé API ou jeton
const ll = LLSDKsJS("your-api-key-here", globalOptions);
// Il s'agit du div qui contiendra le widget
const sdkContainer = document.getElementById("local-content-widget");
const sdkOptions = {
lat: 45.5282164, lng: -73.5978527
// ...Autres options propres au SDK
}
const sdkInstance = ll.create("local-content", sdkContainer, sdkOptions);
}
</script>
</body>
</html>
Configuration
Clé API
Votre clé API vous sera fournie par l'équipe Local Logic.
Si vous migrez depuis un ancien produit du SDK Local Logic, les clés API des versions précédentes ne fonctionnent pas avec nos produits actuels.
Veuillez communiquer avec le soutien de Local Logic pour obtenir votre nouvelle clé.
Options globales
const localLogicClient = localLogicSDK(apiKey, globalOptions)
Ces options sont disponibles pour tous les SDK. Vous pourrez également spécifier des options propres à chaque SDK, selon le SDK que vous implémentez. Ces options seront disponibles dans la documentation propre à chaque SDK
| Nom | Requis | Type | Valeur par défaut | Description |
|---|---|---|---|---|
apiKey | true | string | Clé API requise pour effectuer des requêtes vers l'API Local Logic. | |
globalOptions.appearance | false | Appearance | L'option appearance permet d'utiliser des variables pour personnaliser l'apparence de vos widgets. | |
globalOptions.locale | false | "en" ou "fr" | "en" | L'option locale spécifie la langue des pointages et de l'interface utilisateur. |
globalOptions.externalId | false | string | Pour les SDK connectés à l'application de gestion de quartier (Neighborhood Management App) du Local Logic Hub. Ce champ est requis pour que les SDK Neighborhood Showcase et Favorite Neighborhoods fonctionnent |
Apparence
Les SDK Local Logic prennent en charge la personnalisation visuelle grâce à l'API Appearance, qui vous permet d'adapter l'apparence du SDK à votre marque.
type Appearance = {
variables?: {
[key: string]: string;
};
};
Variables couramment utilisées
| Variable | Description |
|---|---|
--ll-color-primary | La couleur principale de la marque. |
--ll-color-primary-variant1 | Une version légèrement plus foncée de la couleur principale de la marque. Cette variable devrait toujours être modifiée en même temps que --ll-color-primary. |
--ll-font-family | Change la famille de polices utilisée dans l'ensemble des SDK. Actuellement, les SDK ne prennent en charge que les polices système. Cette valeur devrait toujours inclure une famille de polices de repli, p. ex. Inter, sans-serif. |
Fonctions
Une fois que vous avez initialisé votre client SDK avec votre clé API et vos options globales, plusieurs fonctions sont disponibles.
Create
const sdkInstance = localLogicClient.create("local-content", container, sdkOptions)
Cette fonction crée un nouveau widget SDK selon le nom spécifié.
Les sdkOptions sont spécifiques à chaque SDK créé.
| Nom | Requis | Type | Valeur par défaut | Description |
|---|---|---|---|---|
sdkType | true | string | Le SDK que vous souhaitez créer. "local-content" dans ce cas. | |
container | true | HTMLElement | L'élément dans lequel effectuer le rendu. | |
sdkOptions | true | SDKOptions | Options requises pour le sdkType spécifié. Les options sont détaillées ci-dessous. |
SDKOptions
| Name | Required | Type | Default | Description |
|---|---|---|---|---|
sdkOptions.lat | true | number | Latitude initiale de la vue. | |
sdkOptions.lng | true | number | Longitude initiale de la vue. | |
sdkOptions.marker | false | Marker | Affichera un repère sur la carte représentant la latitude/longitude. Le repère peut être utilisé pour symboliser un emplacement en cours d'analyse. Si le repère n'est pas fourni, les fonctionnalités liées au temps de déplacement seront masquées. | |
sdkOptions.zoom | false | number | 16 | Niveau de zoom initial de la vue. La carte effectuera un zoom vers la latitude/longitude spécifiée après l'initialisation, ainsi que lors du chargement des repères sur la carte et du calcul du temps de déplacement. Cette option précise uniquement le zoom de "départ" de la carte. |
sdkOptions.pitch | false | number | 0 | Inclinaison initiale de la vue. |
sdkOptions.bearing | false | number | 0 | Orientation initiale de la vue. |
sdkOptions.cooperativeGestures | false | boolean | true | Si la valeur est true, le zoom par défilement nécessitera d'appuyer sur la touche ctrl ou ⌘ tout en défilant pour zoomer sur la carte, et le déplacement tactile nécessitera l'utilisation de deux doigts pour déplacer la carte. |
sdkOptions.distanceUnit | false | DistanceUnit | metric | Principalement utilisé pour le calculateur de temps de déplacement. Affichera la distance en mi/yd selon le système impérial ou en km/m selon le système métrique. |
sdkOptions.mapProvider | false | MapProvider | { name: "maptiler" } | Données du fournisseur de carte souhaité; la clé n'est requise que si le nom est défini sur "mapbox" ou "google", ou si vous spécifiez un thème personnalisé. |
sdkOptions.hideScores | false | boolean | false | Indique si les cotes doivent être masquées globalement ou non. REMARQUE : si la valeur est true, les cotes sans POI ne seront pas affichées. |
sdkOptions.scoresMenu | false | ScoresMenu | Options pour personnaliser la barre latérale (sur ordinateur de bureau) et le menu de bascule des catégories (sur mobile). | |
sdkOptions.showSchoolRatings | false | boolean | false | Lorsqu'elles sont disponibles, affichera les cotes des écoles dans la fenêtre contextuelle du POI et sous forme d'étiquette dans la barre latérale du POI. |
Update
sdkInstance.update(sdkOptions)
Cette fonction sert à mettre à jour le widget avec de nouvelles valeurs. Cela peut être utile, par exemple, si vous souhaitez changer l'emplacement du widget.
L'objet sdkOptions suit la même structure qu'à la création.
On
sdkInstance.on(event, callback)
Cette fonction prend en argument une fonction de rappel (callback) qui est déclenchée lorsqu'un event survient. Actuellement, il n'existe qu'un seul événement.
| Nom | Requis | Type | Valeur par défaut | Description |
|---|---|---|---|---|
event | true | "change" | Le nom de l'event. | |
callback | true | CallbackFunction | La fonction de rappel à déclencher lorsque l'event spécifié survient. |
type CallbackFunction = ({ type: string, data: unknown }) => void;
Destroy
sdkInstance.destroy()
Cette fonction sert à détruire le widget SDK créé.
Cartes
Le SDK prend actuellement en charge 3 cartes : MapTiler, Mapbox et Google Maps.
- MapTiler
- Mapbox
- Google Maps
MapTiler est utilisé par défaut et la clé API de la carte appartient à Local Logic.
Si vous souhaitez utiliser MapTiler avec un thème personnalisé, vous devrez fournir votre propre clé API MapTiler lors de la mise en œuvre du SDK.
Mapbox est pris en charge en tant que fournisseur de carte, mais vous devrez fournir votre propre clé API Mapbox lors de la mise en œuvre du SDK.
Si vous souhaitez utiliser Google Maps, vous devrez fournir votre clé API Google lors de la mise en œuvre du SDK.
Étapes supplémentaires pour activer la prise en charge de Google Maps
-
Récupérez votre clé API Google Maps à partir de votre projet Google Cloud Platform. Si vous n'avez pas de clé API, voici des instructions pour en créer une.
-
Dans votre projet Google Cloud Platform, veuillez activer l'API suivante :
- Maps JavaScript API
-
Ajoutez le paramètre
mapProviderdans la configuration de votre conteneur SDK. La valeur de la clénamedoit être définie à"google". Votre clé API Google Maps doit être fournie souskey. Voici un exemple de configuration :
Exemple
const sdkOptions = {
// Définir la latitude et la longitude de l'emplacement
lat: 45.5282164,
lng: -73.5978527,
// ...Autres options propres au SDK
mapProvider: {
name: "google",
key: "your-api-key-here",
};
localLogicSDK.create("local-content", container, sdkOptions);
Définitions de type
Type Marker
// Habituellement identique à la latitude/longitude fournie dans les options principales
type Marker = {
lat: number;
lng: number;
};
Type DistanceUnit
type DistanceUnit = "metric" | "imperial";
Type MapProvider
type MapProvider = {
name: "maptiler" | "mapbox" | "google";
// Requis lors de l'utilisation de Google Maps ou de Mapbox, ainsi que lors de l'utilisation de MapTiler avec un thème personnalisé
key?: string;
// ID de thème propre au fournisseur de carte
theme?: string;
};
Format de theme
- MapTiler
- Mapbox
- Google Maps
Format : chaîne UUID de la carte
Utilisé comme : https://api.maptiler.com/maps/{theme}/style.json?key={apiKey}
Le thème est l'ID de carte associé à votre compte MapTiler Cloud. Vous pouvez le trouver dans l'URL lorsque vous consultez un style de carte dans l'éditeur MapTiler Cloud — il s'agit du segment UUID qui suit /maps/.
Valeur par défaut : 600d69cb-288d-445e-9839-3dfe4d76b31a
Format : {username}/{style_id}
Utilisé comme : mapbox://styles/{theme}
Il s'agit d'une URL de style Mapbox sans le préfixe mapbox://styles/. Elle combine votre nom d'utilisateur Mapbox et l'ID du style, que vous pouvez trouver dans Mapbox Studio, sous les options de partage de votre style.
Valeur par défaut : locallogic/cmb9nz9kb011501ru8drq8fqf
Format : chaîne hexadécimale d'ID de carte
Utilisé comme : transmis directement comme propriété mapId au composant Google Maps
Il s'agit d'un ID de carte Google Maps, que vous créez dans la console Google Cloud, sous Maps Management. Cela permet la personnalisation du style de carte basée sur le cloud.
Valeur par défaut : a7ff20eb973126bb
Type ScoresMenu
Valeurs par défaut
const scoresMenu = {
defaultOpen: true,
title: true,
categories: {
amenities: {
hide: false,
order: 0,
colors: {
background: "#FFF2C3",
fill: "#BF8500",
},
scores: {
shopping: {
hide: false,
hideScore: false,
order: 1,
},
groceries: {
hide: false,
hideScore: false,
order: 2,
},
restaurants: {
hide: false,
hideScore: false,
order: 3,
},
cafes: {
hide: false,
hideScore: false,
order: 4,
},
},
},
education: {
hide: false,
order: 1,
colors: {
background: "#E4EFFF",
fill: "#003548",
},
scores: {
daycares: {
hide: false,
hideScore: false,
order: 1,
},
primary_schools: {
hide: false,
hideScore: false,
order: 2,
},
high_schools: {
hide: false,
hideScore: false,
order: 3,
},
},
},
transport: {
hide: false,
order: 2,
colors: {
background: "#E9F8FA",
fill: "#008491",
},
scores: {
transit_friendly: {
hide: false,
hideScore: false,
order: 0,
},
car_friendly: {
hide: false,
hideScore: false,
order: 1,
},
pedestrian_friendly: {
hide: false,
hideScore: false,
order: 2,
},
cycling_friendly: {
hide: false,
hideScore: false,
order: 3,
},
},
},
character: {
hide: false,
order: 4,
colors: {
background: "#FFDAAC",
fill: "#FF7044",
},
scores: {
nightlife: {
hide: false,
hideScore: false,
order: 1,
},
vibrant: {
hide: false,
hideScore: false,
order: 2,
},
historic: {
hide: false,
hideScore: false,
order: 3,
},
quiet: {
hide: false,
hideScore: false,
order: 4,
},
},
},
nature: {
hide: false,
order: 5,
colors: {
background: "#D8F4D9",
fill: "#0F766E",
},
scores: {
parks: {
hide: false,
hideScore: false,
order: 1,
},
greenery: {
hide: false,
hideScore: false,
order: 2,
},
},
},
health: {
hide: false,
order: 6,
colors: {
background: "#FFE7FE",
fill: "#FF84D6",
},
scores: {
wellness: {
hide: false,
hideScore: false,
order: 1,
},
},
},
},
};
// REMARQUE :
// Vous n'avez qu'à fournir les options que vous souhaitez remplacer à l'intérieur du scoresMenu.
// Le SDK utilisera les valeurs par défaut pour toute option non fournie.
type ScoresMenu = {
// Indique si la barre latérale (sur ordinateur de bureau) doit être ouverte par défaut
// Valeur par défaut : true
defaultOpen?: boolean;
// Titre de la barre latérale (sur ordinateur de bureau)
// Si la valeur est false, le titre ne sera pas affiché
// Si la valeur est une chaîne de caractères, le titre sera affiché avec la chaîne fournie
// Lorsqu'une chaîne est fournie, le SDK ne traduira pas le titre
// Valeur par défaut : "Categories" en anglais et "Catégories" en français
title?: boolean | string;
categories?: {
[key in CategoryKey]?: CategoryOptions;
};
};
// Représente les regroupements de cotes de premier niveau
export type CategoryKey =
| "amenities"
| "education"
| "transport"
| "character"
| "nature"
| "health";
type CategoryOptions = {
// Indique si la catégorie doit être masquée
// Si la valeur est true, toutes les cotes de cette catégorie seront masquées
// Valeur par défaut : false
hide?: boolean;
// L'ordre dans lequel la catégorie doit être affichée
// Les nombres les plus bas seront affichés en premier
// Si 2 catégories ont le même ordre, elles seront affichées dans l'ordre où elles ont été définies
order?: number;
// Couleurs qu'utiliseront toutes les cotes et tous les POI de cette catégorie
// Si non fournies, le SDK utilisera les couleurs par défaut de la catégorie
// Si fournies, les couleurs remplaceront les couleurs par défaut de la catégorie
// Les valeurs acceptées sont les couleurs hexadécimales et rgb
colors?: {
background: string;
fill: string;
};
// Cotes qui seront affichées dans cette catégorie
scores?: {
[key in ScoreKey]?: ScoreOptions;
};
};
type ScoreOptions = {
// Indique si la cote doit être masquée
// Si la valeur est true, la cote (et tout ce qui y est associé) ne sera pas affichée
// dans la barre latérale (sur ordinateur de bureau) ou le menu de bascule des catégories (sur mobile)
// Valeur par défaut : false
hide?: boolean;
// Indique si la valeur de la cote doit être masquée
// Si la valeur est true, la valeur de la cote ne sera pas affichée dans la barre latérale (sur ordinateur de bureau) ou le menu de bascule des catégories (sur mobile)
// REMARQUE : si la valeur est true, les cotes sans POI ne seront pas affichées du tout (agissant comme l'option hide)
// Les cotes sans POI sont : Convivialité piétonne, Convivialité cyclable, Verdure, Tranquillité et Historique,
// Valeur par défaut : false
hideScore?: boolean;
// L'ordre dans lequel la cote doit être affichée
// Les nombres les plus bas seront affichés en premier
// Si 2 cotes ont le même ordre, elles seront affichées dans l'ordre où elles ont été définies à l'intérieur de l'objet
order?: number;
};