示例#1
0
        // GET api/<controller>
        public IGeoCodeResult Query(GeoQuery q)
        {
            string key = string.Empty;
            string query = string.Empty;
            string provider = "Google";
            IGeoProviderConfig config;
            IGeoProvider GeoProvider = null;

            IGeoCodeResult result = new GeoCodeResult();

            if (!String.IsNullOrEmpty(q.Query) && !String.IsNullOrEmpty(q.Providers))
            {
                query = q.Query;
                // we have a search
                provider = q.Providers.Replace("KEY", "");
                if (q.Providers.Contains("KEY"))
                {
                    key = q.Key;
                }

                switch (provider)
                {
                    case "Google":
                        config = new GoogleGmapConfig();
                        GeoProvider = new GoogleGmap(config);
                        break;
                    case "Bing":
                        config = new BingMapConfig().SetKey(key);
                        GeoProvider = new BingMap(config);
                        break;
                    case "MapQuest":
                        config = new MapQuestConfig().SetKey(key);
                        GeoProvider = new MapQuestMap(config);
                        break;
                    case "Open Streets":
                        config = new OpenStreetMapConfig().SetUserAgent("your email here yo");
                        GeoProvider = new OpenStreetMap(config);
                        break;
                    case "YahooPlaces":
                        config = new YahooPlaceFinderConfig().SetKey(key);
                        GeoProvider = new YahooPlaceFinder(config);
                        break;
                    case "CloudMade":
                        config = new CloudMadeConfig().SetKey(key);
                        GeoProvider = new CloudMade(config);
                        break;

                }

                GeoProvider = GeoProvider != null ? GeoProvider : new GoogleGmap();

                GeoCoder gc = new GeoCoder(GeoProvider);

                result = gc.GetCoordinates(query);

            }
            return result;
        }
示例#2
0
        public void MapQuestMapTest()
        {
            // mapquest is wierd and always returns some kind of result so not sure this test is valid.
            MapQuestConfig mqc = new MapQuestConfig()
                .SetKey(MapQuestKey);

            MapQuestMap MapQuest = new MapQuestMap(mqc);

            var Expected = new{
            Latitude =30.266899,
            Longitude = -97.742798
            };

            IGeoCodeResult Target = new GeoCodeResult();

            Target = MapQuest.GetCoordinates("Austin, TX");
            Assert.AreEqual(Expected.Latitude, Target.Latitude);
            Assert.AreEqual(Expected.Longitude, Target.Longitude);
        }
示例#3
0
 public MapQuestMap()
 {
     Config = new MapQuestConfig();
 }
示例#4
0
        public void MapQuestMapNoResultsTest()
        {
            MapQuestConfig mqc = new MapQuestConfig()
                .SetKey(MapQuestKey);

            MapQuestMap MapQuest = new MapQuestMap(mqc);

            IGeoCodeResult Expected = new GeoCodeResult();
            Expected.Latitude = 30.266899;
            Expected.Longitude = -97.742798;

            IGeoCodeResult Target = new GeoCodeResult();

            Target = MapQuest.GetCoordinates("zdkthqqad,aads,a");

            // mapquest seems to always return some result
        }
示例#5
0
 public MapQuestMap()
 {
     Config = new MapQuestConfig();
 }