Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Hola Leo! Muchísimas gracias! ahora funciona!

Por si le sirve de algo a alquien:

Al cargar el mapa me he encontrado con un error de javascript, más en concreto onion.js. Leyendo me he encontrado que dicha librería utiliza funciones de JSON. Bastaría con añadir

Código:
<script src="https://cdn.jsdelivr.net/json3/3.3.2/json3.js"></script>
A HTML que generamos y funciona... completo:

Código:
<html>
<head>                 
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

<script src="https://cdn.jsdelivr.net/json3/3.3.2/json3.js"></script>

<script type="text/javascript">
  var geocoder; 
  var map;  
  var markersArray = [];

  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(40.714776,-74.019213);
    var myOptions = {
      zoom: 13,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    map.set("streetViewControl", false);
    google.maps.event.addListener(map, "click", 
         function(event) 
                        {
                         document.getElementById("LatValue").value = event.latLng.lat(); 
                         document.getElementById("LngValue").value = event.latLng.lng(); 
                         PutMarker(document.getElementById("LatValue").value, document.getElementById("LngValue").value,"") 
                        } 
   );

  } 

  function GotoLatLng(Lat, Lang) { 
   var latlng = new google.maps.LatLng(Lat,Lang);
   map.setCenter(latlng);
  }


function ClearMarkers() {  
  if (markersArray) {        
    for (i in markersArray) {  
      markersArray[i].setMap(null); 
    } 
  } 
}  

  function PutMarker(Lat, Lang, Msg) { 
   var latlng = new google.maps.LatLng(Lat,Lang);
   var marker = new google.maps.Marker({
      position: latlng, 
      map: map,
      title: Msg+" ("+Lat+","+Lang+")"
  });
  markersArray.push(marker); 
  index= (markersArray.length % 10);
  if (index==0) { index=10 } 
  icon = "http://www.google.com/mapfiles/kml/paddle/"+index+"-lv.png"; 
  marker.setIcon(icon); 
  }

</script>
</head> 

<body onload="initialize()"> 
  <div id="map_canvas" style="width:100%; height:100%"></div> 
  <div id="latlong"> 
  <input type="hidden" id="LatValue" >
  <input type="hidden" id="LngValue" >
  </div>  

</body> 
</html>
Muchas gracias!
Responder Con Cita
  #2  
Antiguo 05-06-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Completo con lo que faltaba que es poder ejecutar funciones JavaScript y que he encontado por ahi y rula

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 IHTMLDocument2  *doc = NULL;
  IHTMLWindow2 *win;
  if(SUCCEEDED(WebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&doc)))  {
	HRESULT hr = doc->get_parentWindow(&win);
	if (SUCCEEDED(hr))  {
	  BSTR cmd = L"ClearMarkers()";
	  VARIANT v;
	  VariantInit(&v);
	  win->execScript(cmd,NULL,&v);
	  VariantClear(&v);
	  win->Release();
	}
	doc->Release();
  }
Y función con parametros:

Código:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  IHTMLDocument2  *doc = NULL;
  IHTMLWindow2 *win;
  if(SUCCEEDED(WebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&doc)))  {
	HRESULT hr = doc->get_parentWindow(&win);
	if (SUCCEEDED(hr))  {
	  String str = String("GotoLatLng(") + Edit1->Text + "," + Edit2->Text + ")";
	  VARIANT v;
	  VariantInit(&v);
	  win->execScript( str.w_str(), NULL, &v );
	  VariantClear   ( &v );
	  win->Release   ();
	}
	doc->Release();
  }
}
Responder Con Cita
  #3  
Antiguo 05-06-2017
Avatar de _Leo
_Leo _Leo is offline
Miembro
 
Registrado: ene 2017
Ubicación: Lanzarote (Islas Canarias)
Posts: 38
Poder: 0
_Leo Va camino a la fama
Cita:
Empezado por lago Ver Mensaje
Al cargar el mapa me he encontrado con un error de javascript, más en concreto onion.js. Leyendo me he encontrado que dicha librería utiliza funciones de JSON...
Yo lo he dejado tal cual como estaba en el código original, lo que si he tenido es que añadir en la siguiente rama del registro:

Código:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
El siguiente valor:

Código:
SustituirPorElNombreDeTuEjecutable.exe (REG_DWORD) 11001 (valor decimal)
Para así forzar que use el motor de Internet Explorer 11, en lugar del 7 que usa ese control por defecto. También he puesto la propiedad “Silent” a true. Sin el primer cambio daba errores constantes de JavaScript, y solo con el segundo hacia que funcionase a veces y solo por un rato.
Responder Con Cita
  #4  
Antiguo 05-06-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Algo había leído al respecto... hace un rato buscando he encontrado esto:

https://msdn.microsoft.com/es-es/library/cc817574.aspx

Maneras de activar los modos de compatibilidad.

Estoy utilizando esto:
Código:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Forzando al uso del Edge. A ver si después arranco el VMWare y pruebo con un Windows 7 y su explorer...
Responder Con Cita
  #5  
Antiguo 05-06-2017
Avatar de _Leo
_Leo _Leo is offline
Miembro
 
Registrado: ene 2017
Ubicación: Lanzarote (Islas Canarias)
Posts: 38
Poder: 0
_Leo Va camino a la fama
Cita:
Empezado por lago Ver Mensaje

Estoy utilizando esto:
Código:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Forzando al uso del Edge. A ver si después arranco el VMWare y pruebo con un Windows 7 y su explorer...
Fue lo primero que probé, pero lo ignora totalmente, al menos en Windows10.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Api de google , google maps en c++ builder 6 JM1985 C++ Builder 1 01-04-2016 21:10:17
GPS y Google Maps MAXIUM Internet 5 15-03-2011 18:15:05
Google Maps madiazg Varios 4 26-10-2008 22:03:41
Google maps y php halizia PHP 2 16-03-2007 17:04:49
Google Maps .es Neftali [Germán.Estévez] Noticias 0 27-04-2006 13:32:54


La franja horaria es GMT +2. Ahora son las 23:38:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi