You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
3.1 KiB
72 lines
3.1 KiB
namespace Mapbox.Unity.Map
|
|
{
|
|
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
|
|
public static class LocationPrefabCategoryOptions
|
|
{
|
|
|
|
static LocationPrefabCategoryOptions()
|
|
{
|
|
PopulateCategoriesToMakiDictionary();
|
|
}
|
|
|
|
private static Dictionary<LocationPrefabCategories, List<string>> CategoriesToMakiDictionary = new Dictionary<LocationPrefabCategories, List<string>>
|
|
{
|
|
{LocationPrefabCategories.ArtsAndEntertainment,new List<string>{"art-gallery", "cinema", "stadium", "museum", "library", "zoo", "music", "theatre", "amusement-park"}},
|
|
{LocationPrefabCategories.Food,new List<string>{"cafe", "bakery", "fast-food", "grocery", "ice-cream", "restaurant"}},
|
|
{LocationPrefabCategories.Nightlife,new List<string>{"bar", "beer"}},
|
|
{LocationPrefabCategories.OutdoorsAndRecreation,new List<string>{"aquarium", "campsite", "attraction", "castle", "cemetery", "dog-park", "drinking-water", "garden", "golf", "monument", "park", "picnic-site", "playground", "swimming"}},
|
|
{LocationPrefabCategories.Services,new List<string>{"bank", "dentist", "toilet", "veterinary", "pharmacy", "college", "school", "hospital", "place-of-worship", "religious-christian", "religious-jewish", "religious-muslim", "police", "post", "doctor", "fire-station", "information", "town-hall", "prison", "embassy", "fuel", "laundry", "lodging"}},
|
|
{LocationPrefabCategories.Shops,new List<string>{"alcohol-shop", "clothing-store", "shop"}},
|
|
{LocationPrefabCategories.Transportation,new List<string>{"bus", "car", "bicycle-share", "bicycle", "airfield", "ferry", "harbor", "heliport"}},
|
|
};
|
|
|
|
private static Dictionary<string, LocationPrefabCategories> MakiToCategoriesDictionary = new Dictionary<string, LocationPrefabCategories>();
|
|
|
|
|
|
//Creates a reverse reference from the CategoriesToMakiDictionary
|
|
private static void PopulateCategoriesToMakiDictionary ()
|
|
{
|
|
foreach(var item in CategoriesToMakiDictionary)
|
|
{
|
|
foreach(string makiTag in item.Value)
|
|
{
|
|
if (!MakiToCategoriesDictionary.ContainsKey(makiTag))
|
|
{
|
|
MakiToCategoriesDictionary.Add(makiTag, item.Key);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the maki tags list from a <see cref="LocationPrefabCategories"/> category
|
|
/// </summary>
|
|
/// <returns>The list of maki tags from supplied category.</returns>
|
|
/// <param name="category"><see cref="LocationPrefabCategories"/></param>
|
|
public static List<string> GetMakiListFromCategory(LocationPrefabCategories category)
|
|
{
|
|
List<string> returnList = new List<string>();
|
|
|
|
CategoriesToMakiDictionary.TryGetValue(category, out returnList);
|
|
|
|
return returnList;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the <see cref="LocationPrefabCategories"/> category that the maki tag belongs to.
|
|
/// </summary>
|
|
/// <returns>The <see cref="LocationPrefabCategories"/>category from maki tag.</returns>
|
|
/// <param name="makiTag">Maki tag</param>
|
|
public static LocationPrefabCategories GetCategoryFromMakiTag(string makiTag)
|
|
{
|
|
LocationPrefabCategories returnCategory;
|
|
|
|
if (MakiToCategoriesDictionary.TryGetValue(makiTag, out returnCategory))
|
|
return returnCategory;
|
|
|
|
return LocationPrefabCategories.AnyCategory;
|
|
}
|
|
}
|
|
}
|
|
|