using System; using System.Collections.Generic; using UnityEngine; public class BuildingCustomRequestExample:MonoBehaviour { private List usedIDs = new List(); private void Start() { OnlineMapsBuildings.instance.OnPrepareRequest += OnPrepareRequest; OnlineMapsBuildings.instance.OnBuildingCreated += OnBuildingCreated; } private void OnBuildingCreated(OnlineMapsBuildingBase building) { if (usedIDs.Contains(building.id)) return; string label = building.id; foreach (OnlineMapsBuildingMetaInfo metaInfo in building.metaInfo) { if (metaInfo.title == "name") { label = metaInfo.info; break; } } OnlineMapsMarker marker = OnlineMaps.instance.AddMarker(building.centerCoordinates, label); marker.OnClick += OnMarkerClick; usedIDs.Add(building.id); } private void OnMarkerClick(OnlineMapsMarkerBase marker) { Debug.Log(marker.label); } private string OnPrepareRequest(string originalRequest, Vector2 topLeft, Vector3 bottomRight) { return String.Format("node(0},{1},{2},{3});way(bn)['building'~'hospital|public|dormitory|commercial|university|industrial'];(._;>;);out;node(0},{1},{2},{3})['amenity'~'university|college'];way(bn)['building'];(._;>;);out;", bottomRight.y, topLeft.x, topLeft.y, bottomRight.x); } }