JSFiddle Ejemplo
He creado un JSFiddle demostrando una solución a su problema mediante el JavaScript de la Topología de la Suite (JSTS) (JSTS) de la biblioteca.
Explicación
Hay dos pasos para este enfoque. El primer paso que convierte su Google geometrías en WellKnownText (WKT) geometría de expresión, que es un formato ampliamente admitido. El segundo paso se utiliza JSTS para realizar una JSTS geometry.intersects()
comparación de dos WKT geometrías.
Para comprender realmente este deberá tener una comprensión básica de WKT. Debido a que el polígono geometrías en su Mapa de Google no son ampliamente apoyadas formato, puedo convertir de inmediato en WKT geometrías de manera que podamos trabajar con ellos en JSTS.
Para hacer esto fácilmente, he utilizado el de la Peatonal de la biblioteca. Por supuesto, usted puede siempre en casa-rollo de su propia Google-Polígono a-WKT método, o eres bienvenido a utilizar uno me escribió una vez, o puede utilizar alguna otra solución que usted pueda encontrar. Personalmente, en estos días acabo de uso Peatonal, que como se puede ver, es malvado-simple:
// Pass in two Google Polygon objects.
// It returns two WellKnownText (WKT) geometry expressions.
//
function UseWicketToGoFromGooglePolysToWKT( poly1, poly2 )
{
var wicket = new Wkt.Wkt();
wicket.fromObject(poly1);
var wkt1 = wicket.write();
wicket.fromObject(poly2);
var wkt2 = wicket.write();
return [wkt1, wkt2];
}
El siguiente es el de la carne y las patatas, utilizando JSTS tomar dos WKT geometrías y probar si o no que se cruzan. Una vez más, confiando en la biblioteca, no hay mucho a ella:
// Pass in two WKT geometry expressions.
// It performs a JSTS intersects() comparison.
//
function UseJstsToTestForIntersection( wkt1, wkt2 )
{
// Instantiate JSTS WKTReader and get two JSTS geometry objects
var wktReader = new jsts.io.WKTReader();
var geom1 = wktReader.read(wkt1);
var geom2 = wktReader.read(wkt2);
if (geom2.intersects(geom1)) {
alert('intersection confirmed!');
} else {
alert('..no intersection.');
}
}
Cómo he enlazado las bibliotecas en el Violín
El violín enlazado más arriba, y la solución que he demostrado requiere la adición de dos 3ª parte de las bibliotecas para su proyecto--JSTS, y de la Peatonal. Conseguir el código de sus respectivos Githubs y la incorporación de éste en el proyecto es un ejercicio diferente. Pero para el violín, me vinculadas a las bibliotecas por referencia a los mismos en una ya existente JSTS ejemplo he encontrado publicado por Christopher Manning, así como de la Peatonal de la propia página de demostración. Básicamente me abrió las páginas, selecciona "Ver código Fuente", y arrebató las referencias a las dos bibliotecas. Estos eran exacta de la biblioteca de los extremos que he usado:
http://arthur-e.github.io/Wicket/wicket.js
http://arthur-e.github.io/Wicket/wicket-gmap3.js
http://bl.ocks.org/christophermanning/raw/4450188/javascript.util.min.js
http://bl.ocks.org/christophermanning/raw/4450188/jsts.min.js