Back to FindSchool.ca
API : Property School Locator (PSL) Html Control V3.0 - Demo Page

Introduction    Let's try    Easy to use     Price and Service    Screen Shots of Live Sites

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Introduction

In raltor web site usually there is a property list which allow users to click and see each property's details. PSL is designed to automatically show school and its ranking information based on up-to-date school program map boundary. The API works in two modes and developers can update API parameters to make the API working in different mode dynamically.

Public Mode - It is for guest users of the web site.
A random user could browse properties in the web site. The school information to these users are limited which is same as public free version of findschool.ca. Users can see public and catholic school programs, rankings and boundary maps. But it doesn't include french immersion program. School list access is unlimited. But ranking and boundary map can be accessed 5 times/day for each web site or domain.

Member Mode - It is for registered users of the web site.
If the realtor's web site has features that allow user to register as member and the registered user can see PSL working in this mode. The API gives registered users full access on school data inlcuding public and catholic school programs, french immersion programs, rankings and boundary maps. There is no usage limit for web site registered users. Also the member users can print school list, print school reports and see TREB community map.

The API uses google map as default map engine and google map javascript API is the only third party JS library which has to be referenced to run PSL. It is coded by standard javascript and should work with all kind of web pages. PSL has responsive web design and the content can lay out properly on different kinds of devices including phone, tablet and desktop monitors.

If developers want to use Bootstrap and JQuery, and apply bootstrap style to PSL. We have a bootstrap version of this API. Here is the link to see the demo of bootstrap version.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Let's try

Choose a demo address or geo location, and click 'Refresh'
Change Mode:
In this demo page only predefined demo address and geo location get enabled. If developers want to try this API, please send us an email and we will give you a new AppID. With the new AppID you will have full access on the API and can use any address to load the control.




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Easy to use

Step 1: You need to reference GoogleMap and API(Javascript and CSS) in HTML page.
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBIyNR2uZCRGVNchYzh9HLwH2oi9S0EYW8"></script>

<link href="https://www.findschool.ca/web/ApiV3/css?appid=apiv3demo&fid=1" type="text/css" rel="stylesheet"/>
<script src="https://www.findschool.ca/web/ApiV3/js?appid=apiv3demo&fid=1" type="text/javascript"></script>
If developers want to try this API, please send an email to support@findschool.ca. We will create a new AppID for you. 'fid' is feature ID which is always 1 for this API.

Step 2: Define a div to show PSL
<div id="schlocator" ></div>

Step 3: Create PSL and Done!
            var myOptions = {
                SID: "",
                DivMainID: "schlocator"
            }
            var schLocator = new sysparts.schlocator(myOptions);
            schLocator.searchAddress("3412 Marmac Crescent, Mississauga");
Yes, we just created a workable PSL in the page. By default it works in public mode because the SID is empty. If you'd like to see the member mode and you can try to give SID a value.(like: "psldemoclientid" ). If you are a web site provider, usually the SID is your client ID. We can seperate API usage from each of your clients if you are interested in. You can charge more if a client has a high traffic web site. For the PSL object, developers can define a page level variable to store the instance of sysparts.schlocator(). It is reusable. The Div ID should be passed in while creating the object. Also developers can check the source code of this page to see how the API gets reused and how the resources gets cleaned for each refresh.

Step 4: Make it better.
            //event handler
            schLocator.onEvent = function (nEventCode, sMessage) {
                if ((nEventCode == 10) || (nEventCode == -1))
                    alert(nEventCode.toString() + ":" + sMessage);
            };
The API could fire several events. Developers can handle the events by creating a handler as above. Here are the event codes and their meanings.
			//-1: error.
			//1: search successful, return schools
			//2: search successful, not found schools
			//10: register event.
Register Event will be fired in public mode. When guest users reach school data access limit. The API fires this event. Web Site code can handle this event and redirect guest users to registration web page.

Step Extra: Use optimized Google Map Object.
Developers can create their own Google Map object and pass it into the API control including the optimized google map object. Below is an example of creating a google map object out side of PSL control and pass the map instance to API. If no map is passed into PSL control, it will create a google map object using default map settings. If the map is created out side of PSL control, developer has the responsibility to clean up or refresh relative resources.
        var myOptions = {
                SID: "",
                DivMainID: "schlocator",
                IsInnerMap: 0  //if you want to create google map object in your script, set it to 0;
        }
	schLocator = new sysparts.schlocator(myOptions);
	//event handler
        schLocator.onEvent = function (nEventCode, sMessage) {
                if ((nEventCode == 10) || (nEventCode == -1))
                    alert(nEventCode.toString() + ":" + sMessage);
         };
         if (myOptions.IsInnerMap == 0) {
                //to use the map you created, first you need to know the container div object in school locator.
                //then create the map in the container
                //the last is calling school locator control to do updates according to the map you pass in.
                var mapDiv = schLocator.getMapDiv();
                var myMap = createMySiteMap(mapDiv);
                //set your own map object
                schLocator.setMap(0, myMap);
         }
         //control is ready, let's search.
         schLocator.searchAddress(valadress);

        function createMySiteMap(mapDivObj) {
            var myLatLng = new google.maps.LatLng(43.644363478452504, -79.3758230805397);
            var myOptions = {
                maxZoom: 15,
                minZoom: 10,
                zoom: 13,
                center: myLatLng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            var myMap = new google.maps.Map(mapDivObj, myOptions);
            return myMap;
        }


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Price and Service

Yearly Service Fee (12 months) is quoted based on how many domains are going to use PSL. You can get lower price if you are going to deploy PSL to more domains.

The price range below is approximate. Please contact us for your price.
By Phone: 416-800-6761
By Email: support@findschool.ca

Domains or Sub Domains Yearly Service Fee / Per Domain One Time Setup Fee
1$300 $300
2-200$200-$50 $500
moreplease contact us. $800

If you want to try the demo API in your web site, please send an email to support@findschool.ca. We will enable full API access permission and answer your development questions. Thanks.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Screen Shots of Live Sites
Here are some screen shots we took from our clients.