示例#1
0
    public void OnClickMark(object obj)
    {
        OnlineMapsMarker mark = (OnlineMapsMarker)obj;

        GoogleMap.Marker m = (GoogleMap.Marker)(mark.customData);

        Map.Instance.OnClickService(m.id, m.label, m.image, m.endereco, m.distance, m.geoPos);
    }
示例#2
0
    public override void Show(params object[] args)
    {
        base.Show(args);

        MyDebug.Log(jsonData);

        SimpleJSON.JSONNode json = SimpleJSON.JSON.ParseFromWeb(jsonData);
        json = (json["data"] == null) ? json["service"] : json["data"];

        m_markers.Clear();
        GoogleMap.Marker m = null;

        frameServico.anchoredPosition = new Vector2(0, m_wantedY);

        Vector2 center = Vector2.zero;

        Vector2 upperLeft   = Vector2.zero;
        Vector2 bottonRight = Vector2.zero;

        for (int i = 0; i < json.Count; i++)
        {
            m          = new GoogleMap.Marker();
            m.label    = json[i]["name"].Value;
            m.endereco = json[i]["end_endereco"].Value + "\n" + json[i]["end_bairro"].Value;
            m.distance = FreeHelp.Instance.GetKM(json[i]["distance"].AsFloat);
            m.geoPos   = new Vector2(json[i]["longitude"].AsFloat, json[i]["latitude"].AsFloat);
            m.id       = json[i]["id"].AsInt;
            m.image    = json[i]["image"].Value;
            m_markers.Add(m);

            if (i == 0)
            {
                upperLeft   = m.geoPos;
                bottonRight = m.geoPos;
            }

            if (m.geoPos.x < upperLeft.x)
            {
                upperLeft.x = m.geoPos.x;
            }

            if (m.geoPos.x > bottonRight.x)
            {
                bottonRight.x = m.geoPos.x;
            }

            if (m.geoPos.y < upperLeft.y)
            {
                upperLeft.y = m.geoPos.y;
            }

            if (m.geoPos.y > bottonRight.y)
            {
                bottonRight.y = m.geoPos.y;
            }

            center += m.geoPos;
            OnClickService(m.id, m.label, m.image, m.endereco, m.distance, m.geoPos);
        }


        float distance = 15.0f / GeoLocation.distance * 20.0f;

        if (distance < 6)
        {
            distance = 6;
        }

        MyDebug.Log("distance = " + GeoLocation.distance);

        center /= json.Count;

        int zoom = 11;

        //GoogleMap.Instance.SetPosition(m.geoPos, zoom);
        if (GeoLocation.posicaoEncontrada)
        {
            GoogleMap.Instance.SetPosition(center, zoom);
        }
        else
        {
            GoogleMap.Instance.SetPosition(GeoLocation.position, zoom);
        }

        GoogleMap.Instance.SetMarkers(m_markers.ToArray());


        UpperBar.Instance.btnViewMap.SetActive(false);
        UpperBar.Instance.btnViewList.SetActive(false);

        btnCenterMap.gameObject.SetActive(GeoLocation.posicaoEncontrada);

        if (m_markers.Count == 1)
        {
            OnClickService(m_markers[0]);
            Invoke("OnClickFirstService", 0.15f);
        }
    }
示例#3
0
 public void OnClickService(GoogleMap.Marker marker)
 {
     OnClickService(marker.id, marker.label, marker.image, marker.endereco, marker.distance, marker.geoPos);
 }