public void OnPointerDown(PointerEventData eventData) { if (marker == null) { marker = GetComponentInParent <POIMarker>(); } marker.OnClickPOI?.Invoke(marker); }
void Start() { defaultZoom = OnlineMaps.instance.zoom; // Add OnClick events to dynamic markers dynamicMarker = OnlineMapsMarker3DManager.CreateItem(Longitude_User, Latitude_User, POIManager.instance.POI_Prefab); dynamicMarker.instance.name = string.Format("Marker_{0}", POI_Name); //dynamicMarker.OnClick += OnMarkerClick; //dynamicMarker.label = POI_Name; //dynamicMarker.SetDraggable(); SpriteRenderer render = dynamicMarker.instance.GetComponentInChildren <SpriteRenderer>(); render.sprite = ColorMarker == null ? render.sprite : ColorMarker; POIMarker markerPOI = dynamicMarker.instance.AddComponent <POIMarker>(); markerPOI.data = this; markerPOI.OnClickPOI += OnMarkerClick; //Subscribe to zoom change OnlineMaps.instance.OnChangeZoom += OnChangeZoom; }
private void OnMarkerClick(POIMarker markerPOI) { InfoBoxLayout.instance.OpenInfoBoxWithPOI(this); }
/* * События страницы */ protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); // обрабатываем передачу данных со страницы добавления POI if (PhoneApplicationService.Current.State.ContainsKey("type")) { // предыдущая страница передала данные string type = PhoneApplicationService.Current.State["type"] as string; if (type == null) { // удаляем пару с ключом type из состояния приложения PhoneApplicationService.Current.State.Remove("type"); return; } if (type.Equals("PoiSettings")) { // данные передала страница натроек POI POIMarker newPoiMarker = new POIMarker(); string location = PhoneApplicationService.Current.State["location"] as string; if (location == null) return; if (location.Equals("me")) { // записываем в качестве места текущее местоположение пользователя newPoiMarker.Coordinate = myMapMarker.Coordinate; } else if (location.Equals("marker")) { // записываем в качестве места координаты ближайшего маркера поиска } else { // считываем переданные координаты double latitude = (double)PhoneApplicationService.Current.State["latitude"]; double longitude = (double)PhoneApplicationService.Current.State["longitude"]; newPoiMarker.Coordinate = new GeoCoordinate(latitude, longitude); // удаляем из состояния приложения PhoneApplicationService.Current.State.Remove("latitude"); PhoneApplicationService.Current.State.Remove("longitude"); } // удаляем пару с ключом location из состояния прилоежния PhoneApplicationService.Current.State.Remove("location"); // тип маркера newPoiMarker.Kind = (MarkerKind)PhoneApplicationService.Current.State["markerKind"]; // удаляем из состояния приложения PhoneApplicationService.Current.State.Remove("markerKind"); // получаем название и описание POI newPoiMarker.Name = (string)PhoneApplicationService.Current.State["poiName"]; newPoiMarker.Description = (string)PhoneApplicationService.Current.State["poiDescription"]; // удаляем из состояния приложения PhoneApplicationService.Current.State.Remove("poiName"); PhoneApplicationService.Current.State.Remove("poiDescription"); // получаем комментарий пользователя newPoiMarker.Comment = (string)PhoneApplicationService.Current.State["poiComment"]; // удаляем из состояния приложения PhoneApplicationService.Current.State.Remove("poiComment"); // добавляем прочие настройки к POI: параетры пользователя, например. } // удаляем пару с ключом type из состояния приложения PhoneApplicationService.Current.State.Remove("type"); } }